@getlupa/vue 0.22.3 → 0.23.0

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.
Files changed (23) hide show
  1. package/dist/components/product-list/ProductList.vue.d.ts +2 -0
  2. package/dist/components/search-container/SearchContainer.vue.d.ts +2 -0
  3. package/dist/components/search-results/SearchResults.vue.d.ts +4 -0
  4. package/dist/components/search-results/filters/SearchResultsFilters.vue.d.ts +2 -1
  5. package/dist/components/search-results/filters/SortDrawer.vue.d.ts +2 -0
  6. package/dist/components/search-results/filters/facets/DesktopFacetToggle.vue.d.ts +2 -0
  7. package/dist/components/search-results/filters/facets/FacetDisplay.vue.d.ts +5 -1
  8. package/dist/components/search-results/filters/facets/FacetsClearButton.vue.d.ts +10 -0
  9. package/dist/components/search-results/products/SearchResultsMobileToggle.vue.d.ts +1 -6
  10. package/dist/components/search-results/products/SearchResultsSortDrawerToggle.vue.d.ts +2 -0
  11. package/dist/components/search-results/products/sort/DesktopSortToggle.vue.d.ts +2 -0
  12. package/dist/components/search-results/products/sort/SearchResultsSort.vue.d.ts +2 -8
  13. package/dist/components/search-results/products/sort/SortList.vue.d.ts +2 -0
  14. package/dist/composables/useSidebarToggle.d.ts +11 -0
  15. package/dist/composables/useSorting.d.ts +11 -0
  16. package/dist/lupaContainerStyle.css +1 -1
  17. package/dist/lupaSearch.js +1163 -763
  18. package/dist/lupaSearch.mjs +1163 -763
  19. package/dist/stores/options.d.ts +4 -1
  20. package/dist/stores/searchResult.d.ts +20 -8
  21. package/dist/style.css +1 -1
  22. package/dist/types/search-results/SearchResultsOptions.d.ts +17 -1
  23. package/package.json +1 -1
@@ -11791,8 +11791,18 @@ const useOptionsStore = /* @__PURE__ */ defineStore("options", () => {
11791
11791
  );
11792
11792
  const trackingOptions = vue.ref({});
11793
11793
  const searchResultInitialFilters = vue.ref({});
11794
+ const expandedFacetsInner = vue.ref([]);
11794
11795
  const productRecommendationOptions = vue.ref({});
11795
11796
  const screenStore = useScreenStore();
11797
+ const expandedFacets = vue.computed({
11798
+ get: () => {
11799
+ var _a25, _b25, _c, _d, _e;
11800
+ return ((_a25 = expandedFacetsInner.value) == null ? void 0 : _a25.length) ? expandedFacetsInner.value : (_e = (_d = (_c = (_b25 = searchResultOptions.value) == null ? void 0 : _b25.filters) == null ? void 0 : _c.facets) == null ? void 0 : _d.expand) != null ? _e : [];
11801
+ },
11802
+ set: (value) => {
11803
+ expandedFacetsInner.value = value;
11804
+ }
11805
+ });
11796
11806
  const envOptions = vue.computed(
11797
11807
  () => {
11798
11808
  var _a25;
@@ -11892,6 +11902,7 @@ const useOptionsStore = /* @__PURE__ */ defineStore("options", () => {
11892
11902
  currentResolutionPageSizes,
11893
11903
  productRecommendationOptions,
11894
11904
  ariaLabels,
11905
+ expandedFacets,
11895
11906
  setSearchBoxOptions,
11896
11907
  setTrackingOptions,
11897
11908
  setSearchResultOptions,
@@ -13310,7 +13321,7 @@ const getApiUrl = (environment, customBaseUrl) => {
13310
13321
  }
13311
13322
  return Env[environment] || Env["production"];
13312
13323
  };
13313
- const _sfc_main$1A = /* @__PURE__ */ vue.defineComponent({
13324
+ const _sfc_main$1G = /* @__PURE__ */ vue.defineComponent({
13314
13325
  __name: "VoiceSearchProgressCircle",
13315
13326
  props: {
13316
13327
  isRecording: { type: Boolean },
@@ -13523,15 +13534,15 @@ function useVoiceRecorder(options) {
13523
13534
  closeSocket
13524
13535
  };
13525
13536
  }
13526
- const _hoisted_1$1l = {
13537
+ const _hoisted_1$1o = {
13527
13538
  key: 0,
13528
13539
  class: "lupa-dialog-overlay"
13529
13540
  };
13530
- const _hoisted_2$W = { class: "lupa-dialog-content" };
13531
- const _hoisted_3$E = { class: "lupa-listening-text" };
13532
- const _hoisted_4$u = { class: "lupa-mic-button-wrapper" };
13533
- const _hoisted_5$l = ["aria-label"];
13534
- const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13541
+ const _hoisted_2$Y = { class: "lupa-dialog-content" };
13542
+ const _hoisted_3$G = { class: "lupa-listening-text" };
13543
+ const _hoisted_4$w = { class: "lupa-mic-button-wrapper" };
13544
+ const _hoisted_5$m = ["aria-label"];
13545
+ const _sfc_main$1F = /* @__PURE__ */ vue.defineComponent({
13535
13546
  __name: "VoiceSearchDialog",
13536
13547
  props: {
13537
13548
  isOpen: { type: Boolean },
@@ -13636,21 +13647,21 @@ const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13636
13647
  return (_ctx, _cache) => {
13637
13648
  var _a25, _b25;
13638
13649
  return vue.openBlock(), vue.createElementBlock("div", null, [
13639
- props.isOpen ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1l, [
13650
+ props.isOpen ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1o, [
13640
13651
  vue.createElementVNode("button", {
13641
13652
  class: "lupa-dialog-box-close-button",
13642
13653
  onClick: _cache[0] || (_cache[0] = () => emit("close"))
13643
13654
  }),
13644
- vue.createElementVNode("div", _hoisted_2$W, [
13645
- vue.createElementVNode("p", _hoisted_3$E, vue.toDisplayString(description.value), 1),
13646
- vue.createElementVNode("div", _hoisted_4$u, [
13655
+ vue.createElementVNode("div", _hoisted_2$Y, [
13656
+ vue.createElementVNode("p", _hoisted_3$G, vue.toDisplayString(description.value), 1),
13657
+ vue.createElementVNode("div", _hoisted_4$w, [
13647
13658
  vue.createElementVNode("button", {
13648
13659
  class: vue.normalizeClass(["lupa-mic-button", { recording: vue.unref(isRecording) }]),
13649
13660
  onClick: handleRecordingButtonClick,
13650
13661
  "aria-controls": "voice-search-microphone",
13651
13662
  "aria-label": ((_b25 = (_a25 = labels.value) == null ? void 0 : _a25.aria) == null ? void 0 : _b25.microphone) || "Toggle microphone"
13652
- }, null, 10, _hoisted_5$l),
13653
- vue.createVNode(_sfc_main$1A, {
13663
+ }, null, 10, _hoisted_5$m),
13664
+ vue.createVNode(_sfc_main$1G, {
13654
13665
  ref_key: "voiceSearchProgressBar",
13655
13666
  ref: voiceSearchProgressBar,
13656
13667
  class: "lupa-progress-circle",
@@ -13665,18 +13676,18 @@ const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13665
13676
  };
13666
13677
  }
13667
13678
  });
13668
- const _hoisted_1$1k = { id: "lupa-search-box-input-container" };
13669
- const _hoisted_2$V = { class: "lupa-input-clear" };
13670
- const _hoisted_3$D = { id: "lupa-search-box-input" };
13671
- const _hoisted_4$t = ["value"];
13672
- const _hoisted_5$k = ["aria-label", "placeholder"];
13673
- const _hoisted_6$8 = {
13679
+ const _hoisted_1$1n = { id: "lupa-search-box-input-container" };
13680
+ const _hoisted_2$X = { class: "lupa-input-clear" };
13681
+ const _hoisted_3$F = { id: "lupa-search-box-input" };
13682
+ const _hoisted_4$v = ["value"];
13683
+ const _hoisted_5$l = ["aria-label", "placeholder"];
13684
+ const _hoisted_6$7 = {
13674
13685
  key: 0,
13675
13686
  class: "lupa-close-label"
13676
13687
  };
13677
13688
  const _hoisted_7$5 = { key: 1 };
13678
13689
  const _hoisted_8$3 = ["aria-label"];
13679
- const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13690
+ const _sfc_main$1E = /* @__PURE__ */ vue.defineComponent({
13680
13691
  __name: "SearchBoxInput",
13681
13692
  props: {
13682
13693
  options: {},
@@ -13808,20 +13819,20 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13808
13819
  };
13809
13820
  __expose({ focus });
13810
13821
  return (_ctx, _cache) => {
13811
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1k, [
13812
- vue.createElementVNode("div", _hoisted_2$V, [
13822
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1n, [
13823
+ vue.createElementVNode("div", _hoisted_2$X, [
13813
13824
  vue.createElementVNode("div", {
13814
13825
  class: vue.normalizeClass(["lupa-input-clear-content", { "lupa-input-clear-filled": inputValue.value }]),
13815
13826
  onClick: clear
13816
13827
  }, null, 2)
13817
13828
  ]),
13818
- vue.createElementVNode("div", _hoisted_3$D, [
13829
+ vue.createElementVNode("div", _hoisted_3$F, [
13819
13830
  vue.createElementVNode("input", {
13820
13831
  class: "lupa-hint",
13821
13832
  "aria-hidden": "true",
13822
13833
  value: showHint.value ? suggestedValue.value.item.suggestion : "",
13823
13834
  disabled: ""
13824
- }, null, 8, _hoisted_4$t),
13835
+ }, null, 8, _hoisted_4$v),
13825
13836
  vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
13826
13837
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event)
13827
13838
  }, inputAttributes.value, {
@@ -13835,7 +13846,7 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13835
13846
  placeholder: labels.value.placeholder,
13836
13847
  onInput: handleInput,
13837
13848
  onFocus: handleFocus
13838
- }), null, 16, _hoisted_5$k), [
13849
+ }), null, 16, _hoisted_5$l), [
13839
13850
  [vue.vModelText, inputValue.value]
13840
13851
  ]),
13841
13852
  _ctx.options.showSubmitButton ? (vue.openBlock(), vue.createElementBlock("button", {
@@ -13850,7 +13861,7 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13850
13861
  class: "lupa-close-search-container",
13851
13862
  onClick: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("close"))
13852
13863
  }, [
13853
- labels.value.close ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6$8, vue.toDisplayString(labels.value.close), 1)) : vue.createCommentVNode("", true)
13864
+ labels.value.close ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6$7, vue.toDisplayString(labels.value.close), 1)) : vue.createCommentVNode("", true)
13854
13865
  ])) : vue.createCommentVNode("", true),
13855
13866
  isVoiceSearchEnabled.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$5, [
13856
13867
  vue.createElementVNode("button", {
@@ -13861,7 +13872,7 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13861
13872
  "aria-label": voiceSearchAriaLabel.value
13862
13873
  }, null, 8, _hoisted_8$3)
13863
13874
  ])) : vue.createCommentVNode("", true),
13864
- isVoiceSearchEnabled.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1z, {
13875
+ isVoiceSearchEnabled.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1F, {
13865
13876
  key: 2,
13866
13877
  ref_key: "voiceDialogOverlay",
13867
13878
  ref: voiceDialogOverlay,
@@ -13875,7 +13886,7 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13875
13886
  };
13876
13887
  }
13877
13888
  });
13878
- const _sfc_main$1x = /* @__PURE__ */ vue.defineComponent({
13889
+ const _sfc_main$1D = /* @__PURE__ */ vue.defineComponent({
13879
13890
  __name: "SearchBoxMoreResults",
13880
13891
  props: {
13881
13892
  labels: {},
@@ -13913,9 +13924,9 @@ const _sfc_main$1x = /* @__PURE__ */ vue.defineComponent({
13913
13924
  };
13914
13925
  }
13915
13926
  });
13916
- const _hoisted_1$1j = { class: "lupa-search-box-history-item" };
13917
- const _hoisted_2$U = { class: "lupa-search-box-history-item-content" };
13918
- const _sfc_main$1w = /* @__PURE__ */ vue.defineComponent({
13927
+ const _hoisted_1$1m = { class: "lupa-search-box-history-item" };
13928
+ const _hoisted_2$W = { class: "lupa-search-box-history-item-content" };
13929
+ const _sfc_main$1C = /* @__PURE__ */ vue.defineComponent({
13919
13930
  __name: "SearchBoxHistoryItem",
13920
13931
  props: {
13921
13932
  item: {},
@@ -13932,8 +13943,8 @@ const _sfc_main$1w = /* @__PURE__ */ vue.defineComponent({
13932
13943
  emit("click", { query: props.item });
13933
13944
  };
13934
13945
  return (_ctx, _cache) => {
13935
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1j, [
13936
- vue.createElementVNode("div", _hoisted_2$U, [
13946
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1m, [
13947
+ vue.createElementVNode("div", _hoisted_2$W, [
13937
13948
  vue.createElementVNode("div", {
13938
13949
  class: vue.normalizeClass(["lupa-search-box-history-item-text", { "lupa-search-box-history-item-highlighted": _ctx.highlighted }]),
13939
13950
  onClick: click2
@@ -13947,11 +13958,11 @@ const _sfc_main$1w = /* @__PURE__ */ vue.defineComponent({
13947
13958
  };
13948
13959
  }
13949
13960
  });
13950
- const _hoisted_1$1i = {
13961
+ const _hoisted_1$1l = {
13951
13962
  key: 0,
13952
13963
  class: "lupa-search-box-history-panel"
13953
13964
  };
13954
- const _sfc_main$1v = /* @__PURE__ */ vue.defineComponent({
13965
+ const _sfc_main$1B = /* @__PURE__ */ vue.defineComponent({
13955
13966
  __name: "SearchBoxHistoryPanel",
13956
13967
  props: {
13957
13968
  options: {}
@@ -14002,9 +14013,9 @@ const _sfc_main$1v = /* @__PURE__ */ vue.defineComponent({
14002
14013
  }
14003
14014
  };
14004
14015
  return (_ctx, _cache) => {
14005
- return hasHistory.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1i, [
14016
+ return hasHistory.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1l, [
14006
14017
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(limitedHistory.value, (item, index) => {
14007
- return vue.openBlock(), vue.createBlock(_sfc_main$1w, {
14018
+ return vue.openBlock(), vue.createBlock(_sfc_main$1C, {
14008
14019
  key: item,
14009
14020
  item,
14010
14021
  highlighted: index === highlightIndex.value,
@@ -14020,15 +14031,15 @@ const _sfc_main$1v = /* @__PURE__ */ vue.defineComponent({
14020
14031
  };
14021
14032
  }
14022
14033
  });
14023
- const _hoisted_1$1h = { class: "lupa-search-box-no-results" };
14024
- const _sfc_main$1u = /* @__PURE__ */ vue.defineComponent({
14034
+ const _hoisted_1$1k = { class: "lupa-search-box-no-results" };
14035
+ const _sfc_main$1A = /* @__PURE__ */ vue.defineComponent({
14025
14036
  __name: "SearchBoxNoResults",
14026
14037
  props: {
14027
14038
  labels: {}
14028
14039
  },
14029
14040
  setup(__props) {
14030
14041
  return (_ctx, _cache) => {
14031
- return vue.openBlock(), vue.createElementBlock("p", _hoisted_1$1h, vue.toDisplayString(_ctx.labels.noResults), 1);
14042
+ return vue.openBlock(), vue.createElementBlock("p", _hoisted_1$1k, vue.toDisplayString(_ctx.labels.noResults), 1);
14032
14043
  };
14033
14044
  }
14034
14045
  });
@@ -14060,26 +14071,26 @@ const generateGridTemplate = (elements) => {
14060
14071
  }
14061
14072
  return gridTemplate.join(" ");
14062
14073
  };
14063
- const _hoisted_1$1g = ["innerHTML"];
14064
- const _hoisted_2$T = {
14074
+ const _hoisted_1$1j = ["innerHTML"];
14075
+ const _hoisted_2$V = {
14065
14076
  key: 1,
14066
14077
  "data-cy": "lupa-suggestion-value",
14067
14078
  class: "lupa-suggestion-value"
14068
14079
  };
14069
- const _hoisted_3$C = {
14080
+ const _hoisted_3$E = {
14070
14081
  key: 2,
14071
14082
  class: "lupa-suggestion-facet",
14072
14083
  "data-cy": "lupa-suggestion-facet"
14073
14084
  };
14074
- const _hoisted_4$s = {
14085
+ const _hoisted_4$u = {
14075
14086
  class: "lupa-suggestion-facet-label",
14076
14087
  "data-cy": "lupa-suggestion-facet-label"
14077
14088
  };
14078
- const _hoisted_5$j = {
14089
+ const _hoisted_5$k = {
14079
14090
  class: "lupa-suggestion-facet-value",
14080
14091
  "data-cy": "lupa-suggestion-facet-value"
14081
14092
  };
14082
- const _sfc_main$1t = /* @__PURE__ */ vue.defineComponent({
14093
+ const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
14083
14094
  __name: "SearchBoxSuggestion",
14084
14095
  props: {
14085
14096
  suggestion: {},
@@ -14116,20 +14127,20 @@ const _sfc_main$1t = /* @__PURE__ */ vue.defineComponent({
14116
14127
  class: "lupa-suggestion-value",
14117
14128
  "data-cy": "lupa-suggestion-value",
14118
14129
  innerHTML: _ctx.suggestion.displayHighlight
14119
- }, null, 8, _hoisted_1$1g)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$T, vue.toDisplayString(_ctx.suggestion.display), 1)),
14120
- _ctx.suggestion.facet ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$C, [
14121
- vue.createElementVNode("span", _hoisted_4$s, vue.toDisplayString(facetLabel.value), 1),
14122
- vue.createElementVNode("span", _hoisted_5$j, vue.toDisplayString(_ctx.suggestion.facet.title), 1)
14130
+ }, null, 8, _hoisted_1$1j)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$V, vue.toDisplayString(_ctx.suggestion.display), 1)),
14131
+ _ctx.suggestion.facet ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$E, [
14132
+ vue.createElementVNode("span", _hoisted_4$u, vue.toDisplayString(facetLabel.value), 1),
14133
+ vue.createElementVNode("span", _hoisted_5$k, vue.toDisplayString(_ctx.suggestion.facet.title), 1)
14123
14134
  ])) : vue.createCommentVNode("", true)
14124
14135
  ]);
14125
14136
  };
14126
14137
  }
14127
14138
  });
14128
- const _hoisted_1$1f = {
14139
+ const _hoisted_1$1i = {
14129
14140
  id: "lupa-search-box-suggestions",
14130
14141
  "data-cy": "lupa-search-box-suggestions"
14131
14142
  };
14132
- const _sfc_main$1s = /* @__PURE__ */ vue.defineComponent({
14143
+ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
14133
14144
  __name: "SearchBoxSuggestions",
14134
14145
  props: {
14135
14146
  items: {},
@@ -14196,9 +14207,9 @@ const _sfc_main$1s = /* @__PURE__ */ vue.defineComponent({
14196
14207
  });
14197
14208
  });
14198
14209
  return (_ctx, _cache) => {
14199
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1f, [
14210
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1i, [
14200
14211
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(items.value, (item, index) => {
14201
- return vue.openBlock(), vue.createBlock(_sfc_main$1t, {
14212
+ return vue.openBlock(), vue.createBlock(_sfc_main$1z, {
14202
14213
  key: getSuggestionKey(item),
14203
14214
  class: vue.normalizeClass([
14204
14215
  "lupa-suggestion",
@@ -14230,7 +14241,7 @@ const debounce = (func, timeout) => {
14230
14241
  }, timeout);
14231
14242
  };
14232
14243
  };
14233
- const _sfc_main$1r = /* @__PURE__ */ vue.defineComponent({
14244
+ const _sfc_main$1x = /* @__PURE__ */ vue.defineComponent({
14234
14245
  __name: "SearchBoxSuggestionsWrapper",
14235
14246
  props: {
14236
14247
  panel: {},
@@ -14273,7 +14284,7 @@ const _sfc_main$1r = /* @__PURE__ */ vue.defineComponent({
14273
14284
  const getSuggestionsDebounced = debounce(getSuggestions, props.debounce);
14274
14285
  vue.watch(() => props.panel.limit, getSuggestionsDebounced);
14275
14286
  return (_ctx, _cache) => {
14276
- return vue.openBlock(), vue.createBlock(_sfc_main$1s, {
14287
+ return vue.openBlock(), vue.createBlock(_sfc_main$1y, {
14277
14288
  items: searchResult.value,
14278
14289
  highlight: _ctx.panel.highlight,
14279
14290
  queryKey: _ctx.panel.queryKey,
@@ -23613,9 +23624,9 @@ const replaceImageWithPlaceholder = (e2, placeholder) => {
23613
23624
  targetImage.src = placeholder;
23614
23625
  }
23615
23626
  };
23616
- const _hoisted_1$1e = ["src"];
23617
- const _hoisted_2$S = ["src"];
23618
- const _sfc_main$1q = /* @__PURE__ */ vue.defineComponent({
23627
+ const _hoisted_1$1h = ["src"];
23628
+ const _hoisted_2$U = ["src"];
23629
+ const _sfc_main$1w = /* @__PURE__ */ vue.defineComponent({
23619
23630
  __name: "ProductImage",
23620
23631
  props: {
23621
23632
  item: {},
@@ -23757,7 +23768,7 @@ const _sfc_main$1q = /* @__PURE__ */ vue.defineComponent({
23757
23768
  }, { alt: imageAlt.value ? imageAlt.value : void 0 }, {
23758
23769
  onError: replaceWithPlaceholder,
23759
23770
  key: finalUrl.value
23760
- }), null, 16, _hoisted_1$1e))
23771
+ }), null, 16, _hoisted_1$1h))
23761
23772
  ]),
23762
23773
  _: 1
23763
23774
  })) : (vue.openBlock(), vue.createElementBlock("img", vue.mergeProps({
@@ -23765,12 +23776,12 @@ const _sfc_main$1q = /* @__PURE__ */ vue.defineComponent({
23765
23776
  class: ["lupa-images-main-image", { [_ctx.imageClass]: true }],
23766
23777
  style: styleOverride.value,
23767
23778
  src: finalMainImageUrl.value
23768
- }, { alt: imageAlt.value ? imageAlt.value : void 0 }, { onError: replaceWithPlaceholder }), null, 16, _hoisted_2$S))
23779
+ }, { alt: imageAlt.value ? imageAlt.value : void 0 }, { onError: replaceWithPlaceholder }), null, 16, _hoisted_2$U))
23769
23780
  ], 38);
23770
23781
  };
23771
23782
  }
23772
23783
  });
23773
- const _sfc_main$1p = /* @__PURE__ */ vue.defineComponent({
23784
+ const _sfc_main$1v = /* @__PURE__ */ vue.defineComponent({
23774
23785
  __name: "SearchBoxProductImage",
23775
23786
  props: {
23776
23787
  item: {},
@@ -23778,7 +23789,7 @@ const _sfc_main$1p = /* @__PURE__ */ vue.defineComponent({
23778
23789
  },
23779
23790
  setup(__props) {
23780
23791
  return (_ctx, _cache) => {
23781
- return vue.openBlock(), vue.createBlock(_sfc_main$1q, {
23792
+ return vue.openBlock(), vue.createBlock(_sfc_main$1w, {
23782
23793
  item: _ctx.item,
23783
23794
  options: _ctx.options,
23784
23795
  "wrapper-class": "lupa-search-box-image-wrapper",
@@ -23787,12 +23798,12 @@ const _sfc_main$1p = /* @__PURE__ */ vue.defineComponent({
23787
23798
  };
23788
23799
  }
23789
23800
  });
23790
- const _hoisted_1$1d = ["innerHTML"];
23791
- const _hoisted_2$R = {
23801
+ const _hoisted_1$1g = ["innerHTML"];
23802
+ const _hoisted_2$T = {
23792
23803
  key: 1,
23793
23804
  class: "lupa-search-box-product-title"
23794
23805
  };
23795
- const _sfc_main$1o = /* @__PURE__ */ vue.defineComponent({
23806
+ const _sfc_main$1u = /* @__PURE__ */ vue.defineComponent({
23796
23807
  __name: "SearchBoxProductTitle",
23797
23808
  props: {
23798
23809
  item: {},
@@ -23815,18 +23826,18 @@ const _sfc_main$1o = /* @__PURE__ */ vue.defineComponent({
23815
23826
  key: 0,
23816
23827
  class: "lupa-search-box-product-title",
23817
23828
  innerHTML: sanitizedTitle.value
23818
- }, null, 8, _hoisted_1$1d)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$R, [
23829
+ }, null, 8, _hoisted_1$1g)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$T, [
23819
23830
  vue.createElementVNode("strong", null, vue.toDisplayString(title.value), 1)
23820
23831
  ]));
23821
23832
  };
23822
23833
  }
23823
23834
  });
23824
- const _hoisted_1$1c = ["innerHTML"];
23825
- const _hoisted_2$Q = {
23835
+ const _hoisted_1$1f = ["innerHTML"];
23836
+ const _hoisted_2$S = {
23826
23837
  key: 1,
23827
23838
  class: "lupa-search-box-product-description"
23828
23839
  };
23829
- const _sfc_main$1n = /* @__PURE__ */ vue.defineComponent({
23840
+ const _sfc_main$1t = /* @__PURE__ */ vue.defineComponent({
23830
23841
  __name: "SearchBoxProductDescription",
23831
23842
  props: {
23832
23843
  item: {},
@@ -23849,12 +23860,12 @@ const _sfc_main$1n = /* @__PURE__ */ vue.defineComponent({
23849
23860
  key: 0,
23850
23861
  class: "lupa-search-box-product-description",
23851
23862
  innerHTML: sanitizedDescription.value
23852
- }, null, 8, _hoisted_1$1c)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$Q, vue.toDisplayString(description.value), 1));
23863
+ }, null, 8, _hoisted_1$1f)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$S, vue.toDisplayString(description.value), 1));
23853
23864
  };
23854
23865
  }
23855
23866
  });
23856
- const _hoisted_1$1b = { class: "lupa-search-box-product-price" };
23857
- const _sfc_main$1m = /* @__PURE__ */ vue.defineComponent({
23867
+ const _hoisted_1$1e = { class: "lupa-search-box-product-price" };
23868
+ const _sfc_main$1s = /* @__PURE__ */ vue.defineComponent({
23858
23869
  __name: "SearchBoxProductPrice",
23859
23870
  props: {
23860
23871
  item: {},
@@ -23876,13 +23887,13 @@ const _sfc_main$1m = /* @__PURE__ */ vue.defineComponent({
23876
23887
  );
23877
23888
  });
23878
23889
  return (_ctx, _cache) => {
23879
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1b, [
23890
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1e, [
23880
23891
  vue.createElementVNode("strong", null, vue.toDisplayString(price.value), 1)
23881
23892
  ]);
23882
23893
  };
23883
23894
  }
23884
23895
  });
23885
- const _sfc_main$1l = /* @__PURE__ */ vue.defineComponent({
23896
+ const _sfc_main$1r = /* @__PURE__ */ vue.defineComponent({
23886
23897
  __name: "SearchBoxProductRegularPrice",
23887
23898
  props: {
23888
23899
  item: {},
@@ -23913,12 +23924,12 @@ const _sfc_main$1l = /* @__PURE__ */ vue.defineComponent({
23913
23924
  };
23914
23925
  }
23915
23926
  });
23916
- const _hoisted_1$1a = ["innerHTML"];
23917
- const _hoisted_2$P = { key: 0 };
23918
- const _hoisted_3$B = { key: 1 };
23919
- const _hoisted_4$r = { class: "lupa-search-box-custom-label" };
23920
- const _hoisted_5$i = { class: "lupa-search-box-custom-text" };
23921
- const _sfc_main$1k = /* @__PURE__ */ vue.defineComponent({
23927
+ const _hoisted_1$1d = ["innerHTML"];
23928
+ const _hoisted_2$R = { key: 0 };
23929
+ const _hoisted_3$D = { key: 1 };
23930
+ const _hoisted_4$t = { class: "lupa-search-box-custom-label" };
23931
+ const _hoisted_5$j = { class: "lupa-search-box-custom-text" };
23932
+ const _sfc_main$1q = /* @__PURE__ */ vue.defineComponent({
23922
23933
  __name: "SearchBoxProductCustom",
23923
23934
  props: {
23924
23935
  item: {},
@@ -23944,20 +23955,20 @@ const _sfc_main$1k = /* @__PURE__ */ vue.defineComponent({
23944
23955
  key: 0,
23945
23956
  class: [className.value, "lupa-search-box-product-custom"],
23946
23957
  innerHTML: text.value
23947
- }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$1a)) : (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
23958
+ }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$1d)) : (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
23948
23959
  key: 1,
23949
23960
  class: [className.value, "lupa-search-box-product-custom"]
23950
23961
  }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
23951
- !label.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$P, vue.toDisplayString(text.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$B, [
23952
- vue.createElementVNode("div", _hoisted_4$r, vue.toDisplayString(label.value), 1),
23953
- vue.createElementVNode("div", _hoisted_5$i, vue.toDisplayString(text.value), 1)
23962
+ !label.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$R, vue.toDisplayString(text.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$D, [
23963
+ vue.createElementVNode("div", _hoisted_4$t, vue.toDisplayString(label.value), 1),
23964
+ vue.createElementVNode("div", _hoisted_5$j, vue.toDisplayString(text.value), 1)
23954
23965
  ]))
23955
23966
  ], 16));
23956
23967
  };
23957
23968
  }
23958
23969
  });
23959
- const _hoisted_1$19 = ["innerHTML"];
23960
- const _sfc_main$1j = /* @__PURE__ */ vue.defineComponent({
23970
+ const _hoisted_1$1c = ["innerHTML"];
23971
+ const _sfc_main$1p = /* @__PURE__ */ vue.defineComponent({
23961
23972
  __name: "SearchBoxProductCustomHtml",
23962
23973
  props: {
23963
23974
  item: {},
@@ -23982,7 +23993,7 @@ const _sfc_main$1j = /* @__PURE__ */ vue.defineComponent({
23982
23993
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
23983
23994
  class: className.value,
23984
23995
  innerHTML: text.value
23985
- }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$19);
23996
+ }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$1c);
23986
23997
  };
23987
23998
  }
23988
23999
  });
@@ -24040,7 +24051,9 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24040
24051
  const loadingFacets = vue.ref(false);
24041
24052
  const loadingRefiners = vue.ref(false);
24042
24053
  const loadingRelatedQueries = vue.ref(false);
24043
- const isMobileSidebarVisible = vue.ref(false);
24054
+ const isFilterSidebarVisible = vue.ref(false);
24055
+ const isSidebarClosing = vue.ref(false);
24056
+ const isSortingSidebarVisible = vue.ref(false);
24044
24057
  const relatedCategoryChildren = vue.ref([]);
24045
24058
  const lastRequestId = vue.ref("");
24046
24059
  const searchRequestResults = vue.ref({});
@@ -24122,16 +24135,36 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24122
24135
  return hasResults.value && ((_a25 = searchResult.value.offset) != null ? _a25 : 0) >= totalItems.value;
24123
24136
  }
24124
24137
  );
24138
+ const toggleSidebarState = ({
24139
+ visible,
24140
+ sidebar = "filter"
24141
+ }) => {
24142
+ if (sidebar === "sorting") {
24143
+ isSortingSidebarVisible.value = visible;
24144
+ return;
24145
+ }
24146
+ isFilterSidebarVisible.value = visible;
24147
+ };
24125
24148
  const setSidebarState = ({
24126
24149
  visible,
24127
- disableBodyScrolling = true
24150
+ disableBodyScrolling = true,
24151
+ sidebar = "filter"
24128
24152
  }) => {
24153
+ var _a25, _b25, _c, _d;
24129
24154
  if (visible && disableBodyScrolling) {
24130
24155
  disableBodyScroll();
24131
24156
  } else {
24132
24157
  enableBodyScroll();
24133
24158
  }
24134
- isMobileSidebarVisible.value = visible;
24159
+ if (visible || !((_d = (_c = (_b25 = (_a25 = searchResultOptions == null ? void 0 : searchResultOptions.value.filters) == null ? void 0 : _a25.facets) == null ? void 0 : _b25.style) == null ? void 0 : _c.drawer) == null ? void 0 : _d.sidebarCloseDelay)) {
24160
+ toggleSidebarState({ visible, sidebar });
24161
+ } else {
24162
+ isSidebarClosing.value = true;
24163
+ setTimeout(() => {
24164
+ toggleSidebarState({ visible, sidebar });
24165
+ isSidebarClosing.value = false;
24166
+ }, searchResultOptions.value.filters.facets.style.drawer.sidebarCloseDelay);
24167
+ }
24135
24168
  };
24136
24169
  const queryFacet = (_0) => __async(null, [_0], function* ({ queryKey, facetKey }) {
24137
24170
  var _a25, _b25, _c, _d;
@@ -24233,13 +24266,28 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24233
24266
  const setRelatedCategoryChildren = (children) => {
24234
24267
  relatedCategoryChildren.value = [...children];
24235
24268
  };
24269
+ const preconfiguredRelatedQueryKeys = vue.computed(() => {
24270
+ var _a25, _b25, _c, _d, _e;
24271
+ return (_e = (_d = (_c = (_b25 = (_a25 = searchResultOptions.value) == null ? void 0 : _a25.relatedQueries) == null ? void 0 : _b25.source) == null ? void 0 : _c.queries) == null ? void 0 : _d.map((q) => q.facetKey)) != null ? _e : [];
24272
+ });
24273
+ const relatedQueryFacetKeys = vue.computed(() => {
24274
+ var _a25, _b25, _c;
24275
+ const keysFromRelatedResults = (_c = (_b25 = (_a25 = relatedQueriesResult.value) == null ? void 0 : _a25.relatedQueries) == null ? void 0 : _b25.map((rq) => rq.facetKey)) != null ? _c : [];
24276
+ return Array.from(/* @__PURE__ */ new Set([...preconfiguredRelatedQueryKeys.value, ...keysFromRelatedResults]));
24277
+ });
24236
24278
  const queryRelatedQueries = (queryKey, publicQuery, result2, options) => __async(null, null, function* () {
24237
- var _a25, _b25;
24279
+ var _a25, _b25, _c;
24238
24280
  loadingRelatedQueries.value = true;
24239
24281
  const context = getLupaTrackingContext();
24240
24282
  const searchText = (_b25 = (_a25 = result2.suggestedSearchText) != null ? _a25 : result2.searchText) != null ? _b25 : "";
24283
+ const publicQueryFiltersWithoutRelatedKeys = __spreadValues({}, (_c = publicQuery.filters) != null ? _c : {});
24284
+ relatedQueryFacetKeys.value.forEach((facetKey) => {
24285
+ delete publicQueryFiltersWithoutRelatedKeys[facetKey];
24286
+ });
24287
+ const hasRemainingFilters = Object.keys(publicQueryFiltersWithoutRelatedKeys != null ? publicQueryFiltersWithoutRelatedKeys : {}).length > 0;
24241
24288
  const query = __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, publicQuery), {
24242
- searchText
24289
+ searchText,
24290
+ filters: hasRemainingFilters ? publicQueryFiltersWithoutRelatedKeys : void 0
24243
24291
  }), context), {
24244
24292
  modifiers: { facets: false, refiners: true }
24245
24293
  });
@@ -24255,7 +24303,9 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24255
24303
  });
24256
24304
  });
24257
24305
  return {
24258
- isMobileSidebarVisible,
24306
+ isFilterSidebarVisible,
24307
+ isSortingSidebarVisible,
24308
+ isSidebarClosing,
24259
24309
  searchResult,
24260
24310
  columnCount,
24261
24311
  addToCartAmount,
@@ -24281,6 +24331,7 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24281
24331
  relatedQueriesResult,
24282
24332
  relatedQueriesApiEnabled,
24283
24333
  lastResultsSource,
24334
+ relatedQueryFacetKeys,
24284
24335
  setSidebarState,
24285
24336
  queryFacet,
24286
24337
  setLastRequestId,
@@ -24297,12 +24348,12 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24297
24348
  setRelatedQueriesApiEnabled
24298
24349
  };
24299
24350
  });
24300
- const _hoisted_1$18 = { class: "lupa-search-box-add-to-cart-wrapper" };
24301
- const _hoisted_2$O = { class: "lupa-search-box-product-addtocart" };
24302
- const _hoisted_3$A = ["disabled"];
24303
- const _hoisted_4$q = ["href"];
24304
- const _hoisted_5$h = ["disabled"];
24305
- const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
24351
+ const _hoisted_1$1b = { class: "lupa-search-box-add-to-cart-wrapper" };
24352
+ const _hoisted_2$Q = { class: "lupa-search-box-product-addtocart" };
24353
+ const _hoisted_3$C = ["disabled"];
24354
+ const _hoisted_4$s = ["href"];
24355
+ const _hoisted_5$i = ["disabled"];
24356
+ const _sfc_main$1o = /* @__PURE__ */ vue.defineComponent({
24306
24357
  __name: "SearchBoxProductAddToCart",
24307
24358
  props: {
24308
24359
  item: {},
@@ -24348,45 +24399,45 @@ const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
24348
24399
  return Boolean(props.link && props.options.link);
24349
24400
  });
24350
24401
  return (_ctx, _cache) => {
24351
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$18, [
24352
- vue.createElementVNode("div", _hoisted_2$O, [
24402
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1b, [
24403
+ vue.createElementVNode("div", _hoisted_2$Q, [
24353
24404
  hasLink.value ? (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
24354
24405
  key: 0,
24355
24406
  class: addToCartButtonClass.value,
24356
24407
  "data-cy": "lupa-add-to-cart",
24357
24408
  disabled: !inStockValue.value || loading.value
24358
24409
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
24359
- vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$q)
24360
- ], 16, _hoisted_3$A)) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
24410
+ vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$s)
24411
+ ], 16, _hoisted_3$C)) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
24361
24412
  key: 1,
24362
24413
  onClick: vue.withModifiers(handleClick, ["stop", "prevent"]),
24363
24414
  class: addToCartButtonClass.value,
24364
24415
  "data-cy": "lupa-add-to-cart",
24365
24416
  type: "button",
24366
24417
  disabled: !inStockValue.value || loading.value
24367
- }, _ctx.dynamicAttributes), vue.toDisplayString(label.value), 17, _hoisted_5$h))
24418
+ }, _ctx.dynamicAttributes), vue.toDisplayString(label.value), 17, _hoisted_5$i))
24368
24419
  ])
24369
24420
  ]);
24370
24421
  };
24371
24422
  }
24372
24423
  });
24373
- const _hoisted_1$17 = {
24424
+ const _hoisted_1$1a = {
24374
24425
  key: 1,
24375
24426
  class: "lupa-search-box-element-badge-wrapper"
24376
24427
  };
24377
24428
  const __default__$4 = {
24378
24429
  components: {
24379
- SearchBoxProductImage: _sfc_main$1p,
24380
- SearchBoxProductTitle: _sfc_main$1o,
24381
- SearchBoxProductDescription: _sfc_main$1n,
24382
- SearchBoxProductPrice: _sfc_main$1m,
24383
- SearchBoxProductRegularPrice: _sfc_main$1l,
24384
- SearchBoxProductCustom: _sfc_main$1k,
24385
- SearchBoxProductCustomHtml: _sfc_main$1j,
24386
- SearchBoxProductAddToCart: _sfc_main$1i
24430
+ SearchBoxProductImage: _sfc_main$1v,
24431
+ SearchBoxProductTitle: _sfc_main$1u,
24432
+ SearchBoxProductDescription: _sfc_main$1t,
24433
+ SearchBoxProductPrice: _sfc_main$1s,
24434
+ SearchBoxProductRegularPrice: _sfc_main$1r,
24435
+ SearchBoxProductCustom: _sfc_main$1q,
24436
+ SearchBoxProductCustomHtml: _sfc_main$1p,
24437
+ SearchBoxProductAddToCart: _sfc_main$1o
24387
24438
  }
24388
24439
  };
24389
- const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$4), {
24440
+ const _sfc_main$1n = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$4), {
24390
24441
  __name: "SearchBoxProductElement",
24391
24442
  props: {
24392
24443
  item: {},
@@ -24458,7 +24509,7 @@ const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24458
24509
  "dynamic-attributes": dynamicAttributes.value,
24459
24510
  link: _ctx.link
24460
24511
  }, renderDynamicAttributesOnParentElement.value && dynamicAttributes.value), null, 16, ["item", "options", "labels", "class", "inStock", "dynamic-attributes", "link"])) : vue.createCommentVNode("", true)
24461
- ], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$17, [
24512
+ ], 64)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1a, [
24462
24513
  displayElement.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(elementComponent.value), {
24463
24514
  key: 0,
24464
24515
  item: enhancedItem.value,
@@ -24473,14 +24524,14 @@ const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24473
24524
  };
24474
24525
  }
24475
24526
  }));
24476
- const _hoisted_1$16 = { class: "lupa-badge-title" };
24477
- const _hoisted_2$N = ["src"];
24478
- const _hoisted_3$z = { key: 1 };
24479
- const _hoisted_4$p = {
24527
+ const _hoisted_1$19 = { class: "lupa-badge-title" };
24528
+ const _hoisted_2$P = ["src"];
24529
+ const _hoisted_3$B = { key: 1 };
24530
+ const _hoisted_4$r = {
24480
24531
  key: 0,
24481
24532
  class: "lupa-badge-full-text"
24482
24533
  };
24483
- const _sfc_main$1g = /* @__PURE__ */ vue.defineComponent({
24534
+ const _sfc_main$1m = /* @__PURE__ */ vue.defineComponent({
24484
24535
  __name: "SearchResultGeneratedBadge",
24485
24536
  props: {
24486
24537
  options: {},
@@ -24513,20 +24564,20 @@ const _sfc_main$1g = /* @__PURE__ */ vue.defineComponent({
24513
24564
  class: vue.normalizeClass(["lupa-dynamic-badge", customClassName.value]),
24514
24565
  style: vue.normalizeStyle({ background: _ctx.badge.backgroundColor, color: _ctx.badge.color })
24515
24566
  }, [
24516
- vue.createElementVNode("span", _hoisted_1$16, [
24567
+ vue.createElementVNode("span", _hoisted_1$19, [
24517
24568
  image.value ? (vue.openBlock(), vue.createElementBlock("img", {
24518
24569
  key: 0,
24519
24570
  src: image.value
24520
- }, null, 8, _hoisted_2$N)) : vue.createCommentVNode("", true),
24521
- hasTitleText.value && showTitle.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$z, vue.toDisplayString(_ctx.badge.titleText), 1)) : vue.createCommentVNode("", true)
24571
+ }, null, 8, _hoisted_2$P)) : vue.createCommentVNode("", true),
24572
+ hasTitleText.value && showTitle.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$B, vue.toDisplayString(_ctx.badge.titleText), 1)) : vue.createCommentVNode("", true)
24522
24573
  ]),
24523
- hasAdditionalText.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$p, vue.toDisplayString(_ctx.badge.additionalText), 1)) : vue.createCommentVNode("", true)
24574
+ hasAdditionalText.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$r, vue.toDisplayString(_ctx.badge.additionalText), 1)) : vue.createCommentVNode("", true)
24524
24575
  ], 6);
24525
24576
  };
24526
24577
  }
24527
24578
  });
24528
- const _hoisted_1$15 = { class: "lupa-generated-badges" };
24529
- const _sfc_main$1f = /* @__PURE__ */ vue.defineComponent({
24579
+ const _hoisted_1$18 = { class: "lupa-generated-badges" };
24580
+ const _sfc_main$1l = /* @__PURE__ */ vue.defineComponent({
24530
24581
  __name: "SearchResultGeneratedBadges",
24531
24582
  props: {
24532
24583
  options: {}
@@ -24552,9 +24603,9 @@ const _sfc_main$1f = /* @__PURE__ */ vue.defineComponent({
24552
24603
  })).filter((b) => Boolean(b.id));
24553
24604
  });
24554
24605
  return (_ctx, _cache) => {
24555
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$15, [
24606
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$18, [
24556
24607
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(badges.value, (badge) => {
24557
- return vue.openBlock(), vue.createBlock(_sfc_main$1g, {
24608
+ return vue.openBlock(), vue.createBlock(_sfc_main$1m, {
24558
24609
  key: badge.id,
24559
24610
  badge,
24560
24611
  options: _ctx.options
@@ -24564,8 +24615,8 @@ const _sfc_main$1f = /* @__PURE__ */ vue.defineComponent({
24564
24615
  };
24565
24616
  }
24566
24617
  });
24567
- const _hoisted_1$14 = ["innerHTML"];
24568
- const _sfc_main$1e = /* @__PURE__ */ vue.defineComponent({
24618
+ const _hoisted_1$17 = ["innerHTML"];
24619
+ const _sfc_main$1k = /* @__PURE__ */ vue.defineComponent({
24569
24620
  __name: "CustomBadge",
24570
24621
  props: {
24571
24622
  badge: {}
@@ -24586,12 +24637,12 @@ const _sfc_main$1e = /* @__PURE__ */ vue.defineComponent({
24586
24637
  return vue.openBlock(), vue.createElementBlock("div", {
24587
24638
  class: vue.normalizeClass(className.value),
24588
24639
  innerHTML: text.value
24589
- }, null, 10, _hoisted_1$14);
24640
+ }, null, 10, _hoisted_1$17);
24590
24641
  };
24591
24642
  }
24592
24643
  });
24593
- const _hoisted_1$13 = { class: "lupa-text-badges" };
24594
- const _sfc_main$1d = /* @__PURE__ */ vue.defineComponent({
24644
+ const _hoisted_1$16 = { class: "lupa-text-badges" };
24645
+ const _sfc_main$1j = /* @__PURE__ */ vue.defineComponent({
24595
24646
  __name: "TextBadge",
24596
24647
  props: {
24597
24648
  badge: {}
@@ -24605,7 +24656,7 @@ const _sfc_main$1d = /* @__PURE__ */ vue.defineComponent({
24605
24656
  return badges.value.slice(0, props.badge.maxItems);
24606
24657
  });
24607
24658
  return (_ctx, _cache) => {
24608
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$13, [
24659
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$16, [
24609
24660
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayBadges.value, (item) => {
24610
24661
  return vue.openBlock(), vue.createElementBlock("div", {
24611
24662
  class: "lupa-badge lupa-text-badge",
@@ -24616,9 +24667,9 @@ const _sfc_main$1d = /* @__PURE__ */ vue.defineComponent({
24616
24667
  };
24617
24668
  }
24618
24669
  });
24619
- const _hoisted_1$12 = { class: "lupa-image-badges" };
24620
- const _hoisted_2$M = ["src"];
24621
- const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
24670
+ const _hoisted_1$15 = { class: "lupa-image-badges" };
24671
+ const _hoisted_2$O = ["src"];
24672
+ const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
24622
24673
  __name: "ImageBadge",
24623
24674
  props: {
24624
24675
  badge: {}
@@ -24638,7 +24689,7 @@ const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
24638
24689
  return `${props.badge.rootImageUrl}${src}`;
24639
24690
  };
24640
24691
  return (_ctx, _cache) => {
24641
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$12, [
24692
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$15, [
24642
24693
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayBadges.value, (item) => {
24643
24694
  return vue.openBlock(), vue.createElementBlock("div", {
24644
24695
  class: "lupa-badge lupa-image-badge",
@@ -24646,14 +24697,14 @@ const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
24646
24697
  }, [
24647
24698
  vue.createElementVNode("img", {
24648
24699
  src: getImageUrl(item)
24649
- }, null, 8, _hoisted_2$M)
24700
+ }, null, 8, _hoisted_2$O)
24650
24701
  ]);
24651
24702
  }), 128))
24652
24703
  ]);
24653
24704
  };
24654
24705
  }
24655
24706
  });
24656
- const _sfc_main$1b = /* @__PURE__ */ vue.defineComponent({
24707
+ const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent({
24657
24708
  __name: "DiscountBadge",
24658
24709
  props: {
24659
24710
  badge: {}
@@ -24715,16 +24766,16 @@ const _sfc_main$1b = /* @__PURE__ */ vue.defineComponent({
24715
24766
  };
24716
24767
  }
24717
24768
  });
24718
- const _hoisted_1$11 = { id: "lupa-search-results-badges" };
24769
+ const _hoisted_1$14 = { id: "lupa-search-results-badges" };
24719
24770
  const __default__$3 = {
24720
24771
  components: {
24721
- CustomBadge: _sfc_main$1e,
24722
- TextBadge: _sfc_main$1d,
24723
- ImageBadge: _sfc_main$1c,
24724
- DiscountBadge: _sfc_main$1b
24772
+ CustomBadge: _sfc_main$1k,
24773
+ TextBadge: _sfc_main$1j,
24774
+ ImageBadge: _sfc_main$1i,
24775
+ DiscountBadge: _sfc_main$1h
24725
24776
  }
24726
24777
  };
24727
- const _sfc_main$1a = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$3), {
24778
+ const _sfc_main$1g = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$3), {
24728
24779
  __name: "SearchResultsBadgeWrapper",
24729
24780
  props: {
24730
24781
  position: {},
@@ -24787,7 +24838,7 @@ const _sfc_main$1a = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24787
24838
  }
24788
24839
  };
24789
24840
  return (_ctx, _cache) => {
24790
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$11, [
24841
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$14, [
24791
24842
  vue.createElementVNode("div", {
24792
24843
  id: "lupa-badges",
24793
24844
  class: vue.normalizeClass(anchorPosition.value)
@@ -24798,7 +24849,7 @@ const _sfc_main$1a = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24798
24849
  badge
24799
24850
  }, null, 8, ["badge"]);
24800
24851
  }), 128)),
24801
- positionValue.value === "card" ? (vue.openBlock(), vue.createBlock(_sfc_main$1f, {
24852
+ positionValue.value === "card" ? (vue.openBlock(), vue.createBlock(_sfc_main$1l, {
24802
24853
  key: 0,
24803
24854
  options: _ctx.options
24804
24855
  }, null, 8, ["options"])) : vue.createCommentVNode("", true)
@@ -24807,13 +24858,13 @@ const _sfc_main$1a = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24807
24858
  };
24808
24859
  }
24809
24860
  }));
24810
- const _hoisted_1$10 = ["href"];
24811
- const _hoisted_2$L = { class: "lupa-search-box-product-details-section" };
24812
- const _hoisted_3$y = {
24861
+ const _hoisted_1$13 = ["href"];
24862
+ const _hoisted_2$N = { class: "lupa-search-box-product-details-section" };
24863
+ const _hoisted_3$A = {
24813
24864
  key: 0,
24814
24865
  class: "lupa-search-box-product-add-to-cart-section"
24815
24866
  };
24816
- const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24867
+ const _sfc_main$1f = /* @__PURE__ */ vue.defineComponent({
24817
24868
  __name: "SearchBoxProduct",
24818
24869
  props: {
24819
24870
  item: {},
@@ -24919,7 +24970,7 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24919
24970
  style: vue.normalizeStyle(imageStyleOverride.value)
24920
24971
  }, [
24921
24972
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(imageElements.value, (element) => {
24922
- return vue.openBlock(), vue.createBlock(_sfc_main$1h, {
24973
+ return vue.openBlock(), vue.createBlock(_sfc_main$1n, {
24923
24974
  class: "lupa-search-box-product-element",
24924
24975
  key: element.key,
24925
24976
  item: _ctx.item,
@@ -24929,10 +24980,10 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24929
24980
  }, null, 8, ["item", "element", "labels", "link"]);
24930
24981
  }), 128))
24931
24982
  ], 4),
24932
- vue.createElementVNode("div", _hoisted_2$L, [
24983
+ vue.createElementVNode("div", _hoisted_2$N, [
24933
24984
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(detailElements.value, (element) => {
24934
24985
  var _a25;
24935
- return vue.openBlock(), vue.createBlock(_sfc_main$1h, {
24986
+ return vue.openBlock(), vue.createBlock(_sfc_main$1n, {
24936
24987
  class: "lupa-search-box-product-element",
24937
24988
  key: element.key,
24938
24989
  item: _ctx.item,
@@ -24943,7 +24994,7 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24943
24994
  ((_a25 = badgeOptions.value) == null ? void 0 : _a25.anchorElementKey) === element.key ? {
24944
24995
  name: "badges",
24945
24996
  fn: vue.withCtx(() => [
24946
- vue.createVNode(_sfc_main$1a, {
24997
+ vue.createVNode(_sfc_main$1g, {
24947
24998
  options: badgeOptions.value,
24948
24999
  position: "card"
24949
25000
  }, null, 8, ["options"])
@@ -24959,7 +25010,7 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24959
25010
  class: vue.normalizeClass(`lupa-search-box-group-${group}`)
24960
25011
  }, [
24961
25012
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getGroupElements(group), (element) => {
24962
- return vue.openBlock(), vue.createBlock(_sfc_main$1h, {
25013
+ return vue.openBlock(), vue.createBlock(_sfc_main$1n, {
24963
25014
  class: "lupa-search-box-product-element",
24964
25015
  key: element.key,
24965
25016
  item: _ctx.item,
@@ -24971,8 +25022,8 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24971
25022
  }), 128))
24972
25023
  ], 2);
24973
25024
  }), 128)),
24974
- addToCartElement.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$y, [
24975
- vue.createVNode(_sfc_main$1h, {
25025
+ addToCartElement.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$A, [
25026
+ vue.createVNode(_sfc_main$1n, {
24976
25027
  class: "lupa-search-box-product-element",
24977
25028
  item: _ctx.item,
24978
25029
  element: addToCartElement.value,
@@ -24981,7 +25032,7 @@ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
24981
25032
  isInStock: isInStock.value
24982
25033
  }, null, 8, ["item", "element", "labels", "link", "isInStock"])
24983
25034
  ])) : vue.createCommentVNode("", true)
24984
- ], 16, _hoisted_1$10);
25035
+ ], 16, _hoisted_1$13);
24985
25036
  };
24986
25037
  }
24987
25038
  });
@@ -25053,8 +25104,8 @@ const useTrackingStore = /* @__PURE__ */ defineStore("tracking", () => {
25053
25104
  };
25054
25105
  return { trackSearch, trackResults, trackEvent, trackDelayedEvent };
25055
25106
  });
25056
- const _hoisted_1$$ = { id: "lupa-search-box-products" };
25057
- const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
25107
+ const _hoisted_1$12 = { id: "lupa-search-box-products" };
25108
+ const _sfc_main$1e = /* @__PURE__ */ vue.defineComponent({
25058
25109
  __name: "SearchBoxProducts",
25059
25110
  props: {
25060
25111
  items: {},
@@ -25126,7 +25177,7 @@ const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
25126
25177
  }
25127
25178
  };
25128
25179
  return (_ctx, _cache) => {
25129
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$$, [
25180
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$12, [
25130
25181
  _ctx.$slots.productCard ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(_ctx.items, (item, index) => {
25131
25182
  return vue.renderSlot(_ctx.$slots, "productCard", {
25132
25183
  key: index,
@@ -25138,7 +25189,7 @@ const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
25138
25189
  itemClicked: handleProductClick
25139
25190
  });
25140
25191
  }), 128)) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(_ctx.items, (item, index) => {
25141
- return vue.openBlock(), vue.createBlock(_sfc_main$19, {
25192
+ return vue.openBlock(), vue.createBlock(_sfc_main$1f, {
25142
25193
  key: index,
25143
25194
  item,
25144
25195
  panelOptions: _ctx.panelOptions,
@@ -25153,9 +25204,9 @@ const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
25153
25204
  };
25154
25205
  }
25155
25206
  });
25156
- const _hoisted_1$_ = { class: "lupa-search-box-documents-go-to-results-wrapper" };
25157
- const _hoisted_2$K = { key: 0 };
25158
- const _sfc_main$17 = /* @__PURE__ */ vue.defineComponent({
25207
+ const _hoisted_1$11 = { class: "lupa-search-box-documents-go-to-results-wrapper" };
25208
+ const _hoisted_2$M = { key: 0 };
25209
+ const _sfc_main$1d = /* @__PURE__ */ vue.defineComponent({
25159
25210
  __name: "SearchBoxProductsGoToResultsButton",
25160
25211
  props: {
25161
25212
  options: {},
@@ -25186,13 +25237,13 @@ const _sfc_main$17 = /* @__PURE__ */ vue.defineComponent({
25186
25237
  emit("goToResults");
25187
25238
  };
25188
25239
  return (_ctx, _cache) => {
25189
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$_, [
25240
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$11, [
25190
25241
  vue.createElementVNode("button", {
25191
25242
  class: "lupa-search-box-documents-go-to-results-button",
25192
25243
  onClick: goToResults
25193
25244
  }, [
25194
25245
  vue.createTextVNode(vue.toDisplayString(goToResultsLabel.value) + " ", 1),
25195
- totalCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$K, " " + vue.toDisplayString(totalCount.value), 1)) : vue.createCommentVNode("", true)
25246
+ totalCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$M, " " + vue.toDisplayString(totalCount.value), 1)) : vue.createCommentVNode("", true)
25196
25247
  ])
25197
25248
  ]);
25198
25249
  };
@@ -25288,7 +25339,7 @@ const processExtractionObject = (value = {}) => {
25288
25339
  }
25289
25340
  return parsedObject;
25290
25341
  };
25291
- const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
25342
+ const _sfc_main$1c = /* @__PURE__ */ vue.defineComponent({
25292
25343
  __name: "SearchBoxProductsWrapper",
25293
25344
  props: {
25294
25345
  panel: {},
@@ -25358,7 +25409,7 @@ const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
25358
25409
  vue.watch(() => props.panel.limit, getItemsDebounced);
25359
25410
  return (_ctx, _cache) => {
25360
25411
  var _a25, _b25;
25361
- return vue.openBlock(), vue.createBlock(_sfc_main$18, {
25412
+ return vue.openBlock(), vue.createBlock(_sfc_main$1e, {
25362
25413
  items: (_b25 = (_a25 = searchResult.value) == null ? void 0 : _a25.items) != null ? _b25 : [],
25363
25414
  panelOptions: _ctx.panel,
25364
25415
  labels: _ctx.labels,
@@ -25368,7 +25419,7 @@ const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
25368
25419
  default: vue.withCtx(() => {
25369
25420
  var _a26;
25370
25421
  return [
25371
- showGoToResultsButton.value && ((_a26 = searchResult.value) == null ? void 0 : _a26.items.length) ? (vue.openBlock(), vue.createBlock(_sfc_main$17, {
25422
+ showGoToResultsButton.value && ((_a26 = searchResult.value) == null ? void 0 : _a26.items.length) ? (vue.openBlock(), vue.createBlock(_sfc_main$1d, {
25372
25423
  key: 0,
25373
25424
  options: _ctx.searchBoxOptions,
25374
25425
  panel: _ctx.panel,
@@ -25389,7 +25440,7 @@ const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
25389
25440
  };
25390
25441
  }
25391
25442
  });
25392
- const _sfc_main$15 = /* @__PURE__ */ vue.defineComponent({
25443
+ const _sfc_main$1b = /* @__PURE__ */ vue.defineComponent({
25393
25444
  __name: "SearchBoxRelatedSourceWrapper",
25394
25445
  props: {
25395
25446
  panel: {},
@@ -25461,7 +25512,7 @@ const _sfc_main$15 = /* @__PURE__ */ vue.defineComponent({
25461
25512
  });
25462
25513
  return (_ctx, _cache) => {
25463
25514
  var _a25, _b25;
25464
- return vue.openBlock(), vue.createBlock(_sfc_main$18, {
25515
+ return vue.openBlock(), vue.createBlock(_sfc_main$1e, {
25465
25516
  items: (_b25 = (_a25 = searchResult.value) == null ? void 0 : _a25.items) != null ? _b25 : [],
25466
25517
  panelOptions: documentPanelOptions.value,
25467
25518
  labels: _ctx.labels,
@@ -25479,31 +25530,31 @@ const _sfc_main$15 = /* @__PURE__ */ vue.defineComponent({
25479
25530
  };
25480
25531
  }
25481
25532
  });
25482
- const _hoisted_1$Z = {
25533
+ const _hoisted_1$10 = {
25483
25534
  key: 0,
25484
25535
  id: "lupa-search-box-panel"
25485
25536
  };
25486
- const _hoisted_2$J = ["data-cy"];
25487
- const _hoisted_3$x = {
25537
+ const _hoisted_2$L = ["data-cy"];
25538
+ const _hoisted_3$z = {
25488
25539
  key: 0,
25489
25540
  class: "lupa-panel-title lupa-panel-title-top-results"
25490
25541
  };
25491
- const _hoisted_4$o = {
25542
+ const _hoisted_4$q = {
25492
25543
  key: 1,
25493
25544
  class: "lupa-panel-title"
25494
25545
  };
25495
- const _hoisted_5$g = {
25546
+ const _hoisted_5$h = {
25496
25547
  key: 1,
25497
25548
  id: "lupa-search-box-panel"
25498
25549
  };
25499
25550
  const __default__$2 = {
25500
25551
  components: {
25501
- SearchBoxSuggestionsWrapper: _sfc_main$1r,
25502
- SearchBoxProductsWrapper: _sfc_main$16,
25503
- SearchBoxRelatedSourceWrapper: _sfc_main$15
25552
+ SearchBoxSuggestionsWrapper: _sfc_main$1x,
25553
+ SearchBoxProductsWrapper: _sfc_main$1c,
25554
+ SearchBoxRelatedSourceWrapper: _sfc_main$1b
25504
25555
  }
25505
25556
  };
25506
- const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$2), {
25557
+ const _sfc_main$1a = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$2), {
25507
25558
  __name: "SearchBoxMainPanel",
25508
25559
  props: {
25509
25560
  options: {},
@@ -25668,7 +25719,7 @@ const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
25668
25719
  ref_key: "panelContainer",
25669
25720
  ref: panelContainer
25670
25721
  }, [
25671
- displayResults.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$Z, [
25722
+ displayResults.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$10, [
25672
25723
  labels.value.closePanel ? (vue.openBlock(), vue.createElementBlock("a", {
25673
25724
  key: 0,
25674
25725
  class: "lupa-search-box-close-panel",
@@ -25690,8 +25741,8 @@ const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
25690
25741
  style: vue.normalizeStyle(panel.gridArea ? { gridArea: `${panel.gridArea}${index}` } : {}),
25691
25742
  "data-cy": "lupa-panel-" + panel.type + "-index"
25692
25743
  }, [
25693
- ((_a25 = panel.labels) == null ? void 0 : _a25.topResultsTitle) && showTopResultsPanelTitle(panel.queryKey) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$x, vue.toDisplayString((_b25 = panel.labels) == null ? void 0 : _b25.topResultsTitle), 1)) : vue.createCommentVNode("", true),
25694
- ((_c = panel.labels) == null ? void 0 : _c.title) && showPanelTitle(panel) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$o, vue.toDisplayString((_d = panel.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
25744
+ ((_a25 = panel.labels) == null ? void 0 : _a25.topResultsTitle) && showTopResultsPanelTitle(panel.queryKey) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$z, vue.toDisplayString((_b25 = panel.labels) == null ? void 0 : _b25.topResultsTitle), 1)) : vue.createCommentVNode("", true),
25745
+ ((_c = panel.labels) == null ? void 0 : _c.title) && showPanelTitle(panel) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$q, vue.toDisplayString((_d = panel.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
25695
25746
  panel.queryKey && canShowPanel(panel) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getComponent(panel.type)), {
25696
25747
  key: 2,
25697
25748
  panel,
@@ -25713,21 +25764,21 @@ const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
25713
25764
  key: "0"
25714
25765
  } : void 0
25715
25766
  ]), 1064, ["panel", "search-box-options", "options", "debounce", "inputValue", "labels"])) : vue.createCommentVNode("", true)
25716
- ], 14, _hoisted_2$J);
25767
+ ], 14, _hoisted_2$L);
25717
25768
  }), 128))
25718
25769
  ], 4),
25719
- !vue.unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (vue.openBlock(), vue.createBlock(_sfc_main$1u, {
25770
+ !vue.unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (vue.openBlock(), vue.createBlock(_sfc_main$1A, {
25720
25771
  key: 1,
25721
25772
  labels: labels.value
25722
25773
  }, null, 8, ["labels"])) : vue.createCommentVNode("", true),
25723
- displayShowMoreResultsButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1x, {
25774
+ displayShowMoreResultsButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1D, {
25724
25775
  key: 2,
25725
25776
  labels: labels.value,
25726
25777
  options: _ctx.options,
25727
25778
  onGoToResults: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("go-to-results"))
25728
25779
  }, null, 8, ["labels", "options"])) : vue.createCommentVNode("", true)
25729
- ])) : displayHistory.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$g, [
25730
- vue.createVNode(_sfc_main$1v, {
25780
+ ])) : displayHistory.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$h, [
25781
+ vue.createVNode(_sfc_main$1B, {
25731
25782
  options: _ctx.options.history,
25732
25783
  history: history.value,
25733
25784
  onGoToResults: handleGoToResults,
@@ -25752,8 +25803,8 @@ const unbindSearchTriggers = (triggers = [], event) => {
25752
25803
  const elements = getElements(triggers);
25753
25804
  elements.forEach((e2) => e2 == null ? void 0 : e2.removeEventListener(BIND_EVENT, event));
25754
25805
  };
25755
- const _hoisted_1$Y = { class: "lupa-search-box-wrapper" };
25756
- const _sfc_main$13 = /* @__PURE__ */ vue.defineComponent({
25806
+ const _hoisted_1$$ = { class: "lupa-search-box-wrapper" };
25807
+ const _sfc_main$19 = /* @__PURE__ */ vue.defineComponent({
25757
25808
  __name: "SearchBox",
25758
25809
  props: {
25759
25810
  options: {},
@@ -26076,8 +26127,8 @@ const _sfc_main$13 = /* @__PURE__ */ vue.defineComponent({
26076
26127
  id: "lupa-search-box",
26077
26128
  class: vue.normalizeClass({ "lupa-search-box-opened": opened.value })
26078
26129
  }, [
26079
- vue.createElementVNode("div", _hoisted_1$Y, [
26080
- vue.createVNode(_sfc_main$1y, {
26130
+ vue.createElementVNode("div", _hoisted_1$$, [
26131
+ vue.createVNode(_sfc_main$1E, {
26081
26132
  options: inputOptions.value,
26082
26133
  suggestedValue: suggestedValue.value,
26083
26134
  "can-close": (_a26 = _ctx.isSearchContainer) != null ? _a26 : false,
@@ -26090,7 +26141,7 @@ const _sfc_main$13 = /* @__PURE__ */ vue.defineComponent({
26090
26141
  onSearch: handleSearch,
26091
26142
  onClose: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
26092
26143
  }, null, 8, ["options", "suggestedValue", "can-close", "emit-input-on-focus"]),
26093
- opened.value || _ctx.isSearchContainer ? (vue.openBlock(), vue.createBlock(_sfc_main$14, {
26144
+ opened.value || _ctx.isSearchContainer ? (vue.openBlock(), vue.createBlock(_sfc_main$1a, {
26094
26145
  key: 0,
26095
26146
  options: panelOptions.value,
26096
26147
  inputValue: inputValue.value,
@@ -26194,20 +26245,20 @@ const getInitialSearchResults = (options, getQueryParamName, defaultData) => __a
26194
26245
  options.options.onError(e2);
26195
26246
  }
26196
26247
  });
26197
- const _hoisted_1$X = {
26248
+ const _hoisted_1$_ = {
26198
26249
  key: 0,
26199
26250
  id: "lupa-search-results-did-you-mean"
26200
26251
  };
26201
- const _hoisted_2$I = {
26252
+ const _hoisted_2$K = {
26202
26253
  key: 0,
26203
26254
  "data-cy": "suggested-search-text-label"
26204
26255
  };
26205
- const _hoisted_3$w = {
26256
+ const _hoisted_3$y = {
26206
26257
  key: 1,
26207
26258
  "data-cy": "did-you-mean-label"
26208
26259
  };
26209
- const _hoisted_4$n = { key: 1 };
26210
- const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26260
+ const _hoisted_4$p = { key: 1 };
26261
+ const _sfc_main$18 = /* @__PURE__ */ vue.defineComponent({
26211
26262
  __name: "SearchResultsDidYouMean",
26212
26263
  props: {
26213
26264
  labels: {}
@@ -26239,8 +26290,8 @@ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26239
26290
  paramStore.goToResults({ searchText, facet });
26240
26291
  };
26241
26292
  return (_ctx, _cache) => {
26242
- return vue.unref(searchResult).suggestedSearchText || didYouMeanValue.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$X, [
26243
- vue.unref(searchResult).suggestedSearchText ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$I, [
26293
+ return vue.unref(searchResult).suggestedSearchText || didYouMeanValue.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$_, [
26294
+ vue.unref(searchResult).suggestedSearchText ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$K, [
26244
26295
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.labels.noResultsSuggestion.split(" "), (label, index) => {
26245
26296
  return vue.openBlock(), vue.createElementBlock("span", { key: index }, [
26246
26297
  vue.createElementVNode("span", {
@@ -26249,7 +26300,7 @@ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26249
26300
  ]);
26250
26301
  }), 128))
26251
26302
  ])) : vue.createCommentVNode("", true),
26252
- didYouMeanValue.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$w, [
26303
+ didYouMeanValue.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$y, [
26253
26304
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.labels.didYouMean.split(" "), (label, index) => {
26254
26305
  return vue.openBlock(), vue.createElementBlock("span", { key: index }, [
26255
26306
  label.includes("{1}") ? (vue.openBlock(), vue.createElementBlock("span", {
@@ -26257,7 +26308,7 @@ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26257
26308
  class: "lupa-did-you-mean lupa-highlighted-search-text",
26258
26309
  "data-cy": "did-you-mean-value",
26259
26310
  onClick: _cache[0] || (_cache[0] = ($event) => goToResults({ searchText: didYouMeanValue.value }))
26260
- }, vue.toDisplayString(didYouMeanValue.value) + " ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$n, vue.toDisplayString(label) + " ", 1))
26311
+ }, vue.toDisplayString(didYouMeanValue.value) + " ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$p, vue.toDisplayString(label) + " ", 1))
26261
26312
  ]);
26262
26313
  }), 128))
26263
26314
  ])) : vue.createCommentVNode("", true)
@@ -26265,12 +26316,12 @@ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26265
26316
  };
26266
26317
  }
26267
26318
  });
26268
- const _hoisted_1$W = {
26319
+ const _hoisted_1$Z = {
26269
26320
  key: 0,
26270
26321
  class: "lupa-search-results-summary"
26271
26322
  };
26272
- const _hoisted_2$H = ["innerHTML"];
26273
- const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
26323
+ const _hoisted_2$J = ["innerHTML"];
26324
+ const _sfc_main$17 = /* @__PURE__ */ vue.defineComponent({
26274
26325
  __name: "SearchResultsSummary",
26275
26326
  props: {
26276
26327
  label: {},
@@ -26285,8 +26336,8 @@ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
26285
26336
  return addParamsToLabel(props.label, range2, `<span>${totalItems.value}</span>`);
26286
26337
  });
26287
26338
  return (_ctx, _cache) => {
26288
- return vue.unref(totalItems) > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$W, [
26289
- vue.createElementVNode("div", { innerHTML: summaryLabel.value }, null, 8, _hoisted_2$H),
26339
+ return vue.unref(totalItems) > 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$Z, [
26340
+ vue.createElementVNode("div", { innerHTML: summaryLabel.value }, null, 8, _hoisted_2$J),
26290
26341
  _ctx.clearable ? (vue.openBlock(), vue.createElementBlock("span", {
26291
26342
  key: 0,
26292
26343
  class: "lupa-filter-clear",
@@ -26297,19 +26348,19 @@ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
26297
26348
  };
26298
26349
  }
26299
26350
  });
26300
- const _hoisted_1$V = {
26351
+ const _hoisted_1$Y = {
26301
26352
  key: 0,
26302
26353
  class: "lupa-result-page-title",
26303
26354
  "data-cy": "lupa-result-page-title"
26304
26355
  };
26305
- const _hoisted_2$G = { key: 0 };
26306
- const _hoisted_3$v = {
26356
+ const _hoisted_2$I = { key: 0 };
26357
+ const _hoisted_3$x = {
26307
26358
  key: 1,
26308
26359
  class: "lupa-results-total-count"
26309
26360
  };
26310
- const _hoisted_4$m = { class: "lupa-results-total-count-number" };
26311
- const _hoisted_5$f = ["innerHTML"];
26312
- const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
26361
+ const _hoisted_4$o = { class: "lupa-results-total-count-number" };
26362
+ const _hoisted_5$g = ["innerHTML"];
26363
+ const _sfc_main$16 = /* @__PURE__ */ vue.defineComponent({
26313
26364
  __name: "SearchResultsTitle",
26314
26365
  props: {
26315
26366
  options: {},
@@ -26352,16 +26403,16 @@ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
26352
26403
  });
26353
26404
  return (_ctx, _cache) => {
26354
26405
  return vue.openBlock(), vue.createElementBlock("div", null, [
26355
- showSearchTitle.value ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_1$V, [
26406
+ showSearchTitle.value ? (vue.openBlock(), vue.createElementBlock("h1", _hoisted_1$Y, [
26356
26407
  vue.createTextVNode(vue.toDisplayString(searchResultsTitleTemplate.value || _ctx.options.labels.searchResults), 1),
26357
- queryText.value && !searchResultsTitleTemplate.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$G, "'" + vue.toDisplayString(queryText.value) + "'", 1)) : vue.createCommentVNode("", true),
26358
- showProductCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$v, [
26408
+ queryText.value && !searchResultsTitleTemplate.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$I, "'" + vue.toDisplayString(queryText.value) + "'", 1)) : vue.createCommentVNode("", true),
26409
+ showProductCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$x, [
26359
26410
  vue.createTextVNode("(" + vue.toDisplayString(searchResultsCountLabel.value), 1),
26360
- vue.createElementVNode("span", _hoisted_4$m, vue.toDisplayString(vue.unref(totalItems)), 1),
26411
+ vue.createElementVNode("span", _hoisted_4$o, vue.toDisplayString(vue.unref(totalItems)), 1),
26361
26412
  _cache[0] || (_cache[0] = vue.createTextVNode(")"))
26362
26413
  ])) : vue.createCommentVNode("", true)
26363
26414
  ])) : vue.createCommentVNode("", true),
26364
- _ctx.showSummary ? (vue.openBlock(), vue.createBlock(_sfc_main$11, {
26415
+ _ctx.showSummary ? (vue.openBlock(), vue.createBlock(_sfc_main$17, {
26365
26416
  key: 1,
26366
26417
  label: summaryLabel.value
26367
26418
  }, null, 8, ["label"])) : vue.createCommentVNode("", true),
@@ -26369,20 +26420,20 @@ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
26369
26420
  key: 2,
26370
26421
  class: "lupa-result-page-description-top",
26371
26422
  innerHTML: descriptionTop.value
26372
- }, null, 8, _hoisted_5$f)) : vue.createCommentVNode("", true)
26423
+ }, null, 8, _hoisted_5$g)) : vue.createCommentVNode("", true)
26373
26424
  ]);
26374
26425
  };
26375
26426
  }
26376
26427
  });
26377
- const _hoisted_1$U = {
26428
+ const _hoisted_1$X = {
26378
26429
  class: "lupa-current-filter-label",
26379
26430
  "data-cy": "lupa-current-filter-label"
26380
26431
  };
26381
- const _hoisted_2$F = {
26432
+ const _hoisted_2$H = {
26382
26433
  class: "lupa-current-filter-value",
26383
26434
  "data-cy": "lupa-current-filter-value"
26384
26435
  };
26385
- const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
26436
+ const _sfc_main$15 = /* @__PURE__ */ vue.defineComponent({
26386
26437
  __name: "CurrentFilterDisplay",
26387
26438
  props: {
26388
26439
  filter: {}
@@ -26424,23 +26475,23 @@ const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
26424
26475
  onClick: handleClick,
26425
26476
  "aria-label": "Remove filter"
26426
26477
  }, "⨉"),
26427
- vue.createElementVNode("div", _hoisted_1$U, vue.toDisplayString(_ctx.filter.label) + ": ", 1),
26428
- vue.createElementVNode("div", _hoisted_2$F, vue.toDisplayString(formatFilterValue(props.filter)), 1)
26478
+ vue.createElementVNode("div", _hoisted_1$X, vue.toDisplayString(_ctx.filter.label) + ": ", 1),
26479
+ vue.createElementVNode("div", _hoisted_2$H, vue.toDisplayString(formatFilterValue(props.filter)), 1)
26429
26480
  ], 2);
26430
26481
  };
26431
26482
  }
26432
26483
  });
26433
- const _hoisted_1$T = { class: "lupa-filter-title-text" };
26434
- const _hoisted_2$E = {
26484
+ const _hoisted_1$W = { class: "lupa-filter-title-text" };
26485
+ const _hoisted_2$G = {
26435
26486
  key: 0,
26436
26487
  class: "lupa-filter-count"
26437
26488
  };
26438
- const _hoisted_3$u = {
26489
+ const _hoisted_3$w = {
26439
26490
  key: 0,
26440
26491
  class: "filter-values"
26441
26492
  };
26442
- const _hoisted_4$l = { class: "lupa-current-filter-list" };
26443
- const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
26493
+ const _hoisted_4$n = { class: "lupa-current-filter-list" };
26494
+ const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent({
26444
26495
  __name: "CurrentFilters",
26445
26496
  props: {
26446
26497
  options: {},
@@ -26521,19 +26572,19 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
26521
26572
  class: "lupa-current-filter-title",
26522
26573
  onClick: _cache[0] || (_cache[0] = ($event) => isOpen.value = !isOpen.value)
26523
26574
  }, [
26524
- vue.createElementVNode("div", _hoisted_1$T, [
26575
+ vue.createElementVNode("div", _hoisted_1$W, [
26525
26576
  vue.createTextVNode(vue.toDisplayString((_c = (_b25 = (_a25 = _ctx.options) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.title) != null ? _c : "") + " ", 1),
26526
- _ctx.expandable ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$E, " (" + vue.toDisplayString(vue.unref(currentFilterCount)) + ") ", 1)) : vue.createCommentVNode("", true)
26577
+ _ctx.expandable ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$G, " (" + vue.toDisplayString(vue.unref(currentFilterCount)) + ") ", 1)) : vue.createCommentVNode("", true)
26527
26578
  ]),
26528
26579
  _ctx.expandable ? (vue.openBlock(), vue.createElementBlock("div", {
26529
26580
  key: 0,
26530
26581
  class: vue.normalizeClass(["lupa-filter-title-caret", isOpen.value && "open"])
26531
26582
  }, null, 2)) : vue.createCommentVNode("", true)
26532
26583
  ]),
26533
- !_ctx.expandable || isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$u, [
26534
- vue.createElementVNode("div", _hoisted_4$l, [
26584
+ !_ctx.expandable || isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$w, [
26585
+ vue.createElementVNode("div", _hoisted_4$n, [
26535
26586
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(currentDisplayFilters.value, (filter) => {
26536
- return vue.openBlock(), vue.createBlock(_sfc_main$$, {
26587
+ return vue.openBlock(), vue.createBlock(_sfc_main$15, {
26537
26588
  key: filter.key + "_" + filter.value,
26538
26589
  filter,
26539
26590
  units: units.value,
@@ -26551,8 +26602,8 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
26551
26602
  };
26552
26603
  }
26553
26604
  });
26554
- const _hoisted_1$S = ["href"];
26555
- const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
26605
+ const _hoisted_1$V = ["href"];
26606
+ const _sfc_main$13 = /* @__PURE__ */ vue.defineComponent({
26556
26607
  __name: "CategoryFilterItem",
26557
26608
  props: {
26558
26609
  options: {},
@@ -26589,20 +26640,20 @@ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent({
26589
26640
  "data-cy": "lupa-child-category-item",
26590
26641
  href: urlLink.value,
26591
26642
  onClick: handleNavigation
26592
- }, vue.toDisplayString(title.value), 9, _hoisted_1$S)
26643
+ }, vue.toDisplayString(title.value), 9, _hoisted_1$V)
26593
26644
  ], 2);
26594
26645
  };
26595
26646
  }
26596
26647
  });
26597
- const _hoisted_1$R = {
26648
+ const _hoisted_1$U = {
26598
26649
  class: "lupa-category-filter",
26599
26650
  "data-cy": "lupa-category-filter"
26600
26651
  };
26601
- const _hoisted_2$D = { class: "lupa-category-back" };
26602
- const _hoisted_3$t = ["href"];
26603
- const _hoisted_4$k = ["href"];
26604
- const _hoisted_5$e = { class: "lupa-child-category-list" };
26605
- const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26652
+ const _hoisted_2$F = { class: "lupa-category-back" };
26653
+ const _hoisted_3$v = ["href"];
26654
+ const _hoisted_4$m = ["href"];
26655
+ const _hoisted_5$f = { class: "lupa-child-category-list" };
26656
+ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26606
26657
  __name: "CategoryFilter",
26607
26658
  props: {
26608
26659
  options: {}
@@ -26690,14 +26741,14 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26690
26741
  };
26691
26742
  __expose({ fetch: fetch2 });
26692
26743
  return (_ctx, _cache) => {
26693
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$R, [
26694
- vue.createElementVNode("div", _hoisted_2$D, [
26744
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$U, [
26745
+ vue.createElementVNode("div", _hoisted_2$F, [
26695
26746
  hasBackButton.value ? (vue.openBlock(), vue.createElementBlock("a", {
26696
26747
  key: 0,
26697
26748
  "data-cy": "lupa-category-back",
26698
26749
  href: backUrlLink.value,
26699
26750
  onClick: handleNavigationBack
26700
- }, vue.toDisplayString(backTitle.value), 9, _hoisted_3$t)) : vue.createCommentVNode("", true)
26751
+ }, vue.toDisplayString(backTitle.value), 9, _hoisted_3$v)) : vue.createCommentVNode("", true)
26701
26752
  ]),
26702
26753
  vue.createElementVNode("div", {
26703
26754
  class: vue.normalizeClass(["lupa-current-category", { "lupa-current-category-active": isActive }])
@@ -26707,11 +26758,11 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26707
26758
  href: parentUrlLink.value,
26708
26759
  class: vue.normalizeClass({ "lupa-title-category": !hasBackButton.value }),
26709
26760
  onClick: handleNavigationParent
26710
- }, vue.toDisplayString(parentTitle.value), 11, _hoisted_4$k)
26761
+ }, vue.toDisplayString(parentTitle.value), 11, _hoisted_4$m)
26711
26762
  ], 2),
26712
- vue.createElementVNode("div", _hoisted_5$e, [
26763
+ vue.createElementVNode("div", _hoisted_5$f, [
26713
26764
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(categoryChildren.value, (child) => {
26714
- return vue.openBlock(), vue.createBlock(_sfc_main$Z, {
26765
+ return vue.openBlock(), vue.createBlock(_sfc_main$13, {
26715
26766
  key: getCategoryKey(child),
26716
26767
  item: child,
26717
26768
  options: _ctx.options
@@ -26722,22 +26773,22 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26722
26773
  };
26723
26774
  }
26724
26775
  });
26725
- const _hoisted_1$Q = {
26776
+ const _hoisted_1$T = {
26726
26777
  class: "lupa-search-result-facet-term-values",
26727
26778
  "data-cy": "lupa-search-result-facet-term-values"
26728
26779
  };
26729
- const _hoisted_2$C = ["placeholder"];
26730
- const _hoisted_3$s = { class: "lupa-terms-list" };
26731
- const _hoisted_4$j = ["onClick"];
26732
- const _hoisted_5$d = { class: "lupa-term-checkbox-wrapper" };
26733
- const _hoisted_6$7 = { class: "lupa-term-label" };
26780
+ const _hoisted_2$E = ["placeholder"];
26781
+ const _hoisted_3$u = { class: "lupa-terms-list" };
26782
+ const _hoisted_4$l = ["onClick"];
26783
+ const _hoisted_5$e = { class: "lupa-term-checkbox-wrapper" };
26784
+ const _hoisted_6$6 = { class: "lupa-term-label" };
26734
26785
  const _hoisted_7$4 = {
26735
26786
  key: 0,
26736
26787
  class: "lupa-term-count"
26737
26788
  };
26738
26789
  const _hoisted_8$2 = { key: 0 };
26739
26790
  const _hoisted_9$2 = { key: 1 };
26740
- const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
26791
+ const _sfc_main$11 = /* @__PURE__ */ vue.defineComponent({
26741
26792
  __name: "TermFacet",
26742
26793
  props: {
26743
26794
  options: {},
@@ -26831,17 +26882,17 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
26831
26882
  }
26832
26883
  };
26833
26884
  return (_ctx, _cache) => {
26834
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$Q, [
26885
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$T, [
26835
26886
  isFilterable.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
26836
26887
  key: 0,
26837
26888
  class: "lupa-term-filter",
26838
26889
  "data-cy": "lupa-term-filter",
26839
26890
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => termFilter.value = $event),
26840
26891
  placeholder: _ctx.options.labels.facetFilter
26841
- }, null, 8, _hoisted_2$C)), [
26892
+ }, null, 8, _hoisted_2$E)), [
26842
26893
  [vue.vModelText, termFilter.value]
26843
26894
  ]) : vue.createCommentVNode("", true),
26844
- vue.createElementVNode("div", _hoisted_3$s, [
26895
+ vue.createElementVNode("div", _hoisted_3$u, [
26845
26896
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayValues.value, (item) => {
26846
26897
  return vue.openBlock(), vue.createElementBlock("div", {
26847
26898
  class: vue.normalizeClass(["lupa-facet-term", { checked: isChecked(item) }]),
@@ -26849,7 +26900,7 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
26849
26900
  key: item.title,
26850
26901
  onClick: ($event) => handleFacetClick(item)
26851
26902
  }, [
26852
- vue.createElementVNode("div", _hoisted_5$d, [
26903
+ vue.createElementVNode("div", _hoisted_5$e, [
26853
26904
  vue.createElementVNode("span", {
26854
26905
  class: vue.normalizeClass(["lupa-term-checkbox", { checked: isChecked(item) }])
26855
26906
  }, null, 2)
@@ -26857,10 +26908,10 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
26857
26908
  vue.createElementVNode("div", {
26858
26909
  class: vue.normalizeClass(["lupa-term-checkbox-label", { [getFacetValueClass(item)]: true }])
26859
26910
  }, [
26860
- vue.createElementVNode("span", _hoisted_6$7, vue.toDisplayString(getItemLabel(item)), 1),
26911
+ vue.createElementVNode("span", _hoisted_6$6, vue.toDisplayString(getItemLabel(item)), 1),
26861
26912
  _ctx.options.showDocumentCount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$4, "(" + vue.toDisplayString(item.count) + ")", 1)) : vue.createCommentVNode("", true)
26862
26913
  ], 2)
26863
- ], 10, _hoisted_4$j);
26914
+ ], 10, _hoisted_4$l);
26864
26915
  }), 128))
26865
26916
  ]),
26866
26917
  displayShowMore.value ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -27780,21 +27831,21 @@ const roundToMaxDecimals = (value, maxPrecision = 0.1) => {
27780
27831
  }
27781
27832
  return out;
27782
27833
  };
27783
- const _hoisted_1$P = { class: "lupa-search-result-facet-stats-values" };
27784
- const _hoisted_2$B = {
27834
+ const _hoisted_1$S = { class: "lupa-search-result-facet-stats-values" };
27835
+ const _hoisted_2$D = {
27785
27836
  key: 0,
27786
27837
  class: "lupa-stats-facet-summary"
27787
27838
  };
27788
- const _hoisted_3$r = {
27839
+ const _hoisted_3$t = {
27789
27840
  key: 1,
27790
27841
  class: "lupa-stats-facet-summary-input"
27791
27842
  };
27792
- const _hoisted_4$i = { class: "lupa-stats-from" };
27793
- const _hoisted_5$c = {
27843
+ const _hoisted_4$k = { class: "lupa-stats-from" };
27844
+ const _hoisted_5$d = {
27794
27845
  key: 0,
27795
27846
  class: "lupa-stats-range-label"
27796
27847
  };
27797
- const _hoisted_6$6 = ["min", "max", "pattern", "aria-label"];
27848
+ const _hoisted_6$5 = ["min", "max", "pattern", "aria-label"];
27798
27849
  const _hoisted_7$3 = { key: 1 };
27799
27850
  const _hoisted_8$1 = { key: 2 };
27800
27851
  const _hoisted_9$1 = { class: "lupa-stats-to" };
@@ -27809,7 +27860,7 @@ const _hoisted_14 = {
27809
27860
  key: 2,
27810
27861
  class: "lupa-stats-slider-wrapper"
27811
27862
  };
27812
- const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
27863
+ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
27813
27864
  __name: "StatsFacet",
27814
27865
  props: {
27815
27866
  options: {},
@@ -28028,10 +28079,10 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
28028
28079
  }
28029
28080
  );
28030
28081
  return (_ctx, _cache) => {
28031
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$P, [
28032
- !isInputVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$B, vue.toDisplayString(statsSummary.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$r, [
28033
- vue.createElementVNode("div", _hoisted_4$i, [
28034
- rangeLabelFrom.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$c, vue.toDisplayString(rangeLabelFrom.value), 1)) : vue.createCommentVNode("", true),
28082
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$S, [
28083
+ !isInputVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$D, vue.toDisplayString(statsSummary.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$t, [
28084
+ vue.createElementVNode("div", _hoisted_4$k, [
28085
+ rangeLabelFrom.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$d, vue.toDisplayString(rangeLabelFrom.value), 1)) : vue.createCommentVNode("", true),
28035
28086
  vue.withDirectives(vue.createElementVNode("input", {
28036
28087
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
28037
28088
  type: "text",
@@ -28040,7 +28091,7 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
28040
28091
  max: facetMax.value,
28041
28092
  pattern: sliderInputFormat.value,
28042
28093
  "aria-label": ariaLabelFrom.value
28043
- }, null, 8, _hoisted_6$6), [
28094
+ }, null, 8, _hoisted_6$5), [
28044
28095
  [
28045
28096
  vue.vModelText,
28046
28097
  fromValue.value,
@@ -28093,17 +28144,17 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
28093
28144
  };
28094
28145
  }
28095
28146
  });
28096
- const _hoisted_1$O = { class: "lupa-term-checkbox-wrapper" };
28097
- const _hoisted_2$A = { class: "lupa-term-label" };
28098
- const _hoisted_3$q = {
28147
+ const _hoisted_1$R = { class: "lupa-term-checkbox-wrapper" };
28148
+ const _hoisted_2$C = { class: "lupa-term-label" };
28149
+ const _hoisted_3$s = {
28099
28150
  key: 0,
28100
28151
  class: "lupa-term-count"
28101
28152
  };
28102
- const _hoisted_4$h = {
28153
+ const _hoisted_4$j = {
28103
28154
  key: 0,
28104
28155
  class: "lupa-facet-level"
28105
28156
  };
28106
- const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28157
+ const _sfc_main$$ = /* @__PURE__ */ vue.defineComponent({
28107
28158
  __name: "HierarchyFacetLevel",
28108
28159
  props: {
28109
28160
  options: {},
@@ -28157,7 +28208,7 @@ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28157
28208
  "data-cy": "lupa-facet-term",
28158
28209
  onClick: _cache[0] || (_cache[0] = ($event) => handleFacetClick(_ctx.item))
28159
28210
  }, [
28160
- vue.createElementVNode("div", _hoisted_1$O, [
28211
+ vue.createElementVNode("div", _hoisted_1$R, [
28161
28212
  vue.createElementVNode("span", {
28162
28213
  class: vue.normalizeClass(["lupa-term-checkbox", { checked: isChecked.value }])
28163
28214
  }, null, 2)
@@ -28165,11 +28216,11 @@ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28165
28216
  vue.createElementVNode("div", {
28166
28217
  class: vue.normalizeClass(["lupa-term-checkbox-label", { [getFacetValueClass(_ctx.item)]: true }])
28167
28218
  }, [
28168
- vue.createElementVNode("span", _hoisted_2$A, vue.toDisplayString(_ctx.item.title) + vue.toDisplayString(" "), 1),
28169
- _ctx.options.showDocumentCount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$q, "(" + vue.toDisplayString(_ctx.item.count) + ")", 1)) : vue.createCommentVNode("", true)
28219
+ vue.createElementVNode("span", _hoisted_2$C, vue.toDisplayString(_ctx.item.title) + vue.toDisplayString(" "), 1),
28220
+ _ctx.options.showDocumentCount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$s, "(" + vue.toDisplayString(_ctx.item.count) + ")", 1)) : vue.createCommentVNode("", true)
28170
28221
  ], 2)
28171
28222
  ]),
28172
- showChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$h, [
28223
+ showChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$j, [
28173
28224
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(treeItem.value.children, (itemChild) => {
28174
28225
  return vue.openBlock(), vue.createBlock(_component_HierarchyFacetLevel, {
28175
28226
  key: itemChild.title,
@@ -28185,13 +28236,13 @@ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28185
28236
  };
28186
28237
  }
28187
28238
  });
28188
- const _hoisted_1$N = {
28239
+ const _hoisted_1$Q = {
28189
28240
  class: "lupa-search-result-facet-term-values lupa-search-result-facet-hierarchy-values",
28190
28241
  "data-cy": "lupa-search-result-facet-term-values"
28191
28242
  };
28192
- const _hoisted_2$z = { key: 0 };
28193
- const _hoisted_3$p = ["placeholder"];
28194
- const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
28243
+ const _hoisted_2$B = { key: 0 };
28244
+ const _hoisted_3$r = ["placeholder"];
28245
+ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
28195
28246
  __name: "HierarchyFacet",
28196
28247
  props: {
28197
28248
  options: {},
@@ -28247,19 +28298,19 @@ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
28247
28298
  showAll.value = false;
28248
28299
  };
28249
28300
  return (_ctx, _cache) => {
28250
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$N, [
28251
- isFilterable.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$z, [
28301
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$Q, [
28302
+ isFilterable.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$B, [
28252
28303
  vue.withDirectives(vue.createElementVNode("input", {
28253
28304
  class: "lupa-term-filter",
28254
28305
  "data-cy": "lupa-term-filter",
28255
28306
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => termFilter.value = $event),
28256
28307
  placeholder: _ctx.options.labels.facetFilter
28257
- }, null, 8, _hoisted_3$p), [
28308
+ }, null, 8, _hoisted_3$r), [
28258
28309
  [vue.vModelText, termFilter.value]
28259
28310
  ])
28260
28311
  ])) : vue.createCommentVNode("", true),
28261
28312
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayValues.value, (item) => {
28262
- return vue.openBlock(), vue.createBlock(_sfc_main$V, {
28313
+ return vue.openBlock(), vue.createBlock(_sfc_main$$, {
28263
28314
  key: item.title,
28264
28315
  options: _ctx.options,
28265
28316
  item,
@@ -28283,30 +28334,31 @@ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
28283
28334
  };
28284
28335
  }
28285
28336
  });
28286
- const _hoisted_1$M = { class: "lupa-facet-label-text" };
28287
- const _hoisted_2$y = {
28337
+ const _hoisted_1$P = { class: "lupa-facet-label-text" };
28338
+ const _hoisted_2$A = {
28288
28339
  key: 0,
28289
28340
  class: "lupa-facet-content",
28290
28341
  "data-cy": "lupa-facet-content"
28291
28342
  };
28292
28343
  const __default__$1 = {
28293
28344
  components: {
28294
- TermFacet: _sfc_main$X,
28295
- StatsFacet: _sfc_main$W,
28296
- HierarchyFacet: _sfc_main$U
28345
+ TermFacet: _sfc_main$11,
28346
+ StatsFacet: _sfc_main$10,
28347
+ HierarchyFacet: _sfc_main$_
28297
28348
  }
28298
28349
  };
28299
- const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$1), {
28350
+ const _sfc_main$Z = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__$1), {
28300
28351
  __name: "FacetDisplay",
28301
28352
  props: {
28302
28353
  options: {},
28303
28354
  facet: {},
28304
28355
  currentFilters: {},
28305
- clearable: { type: Boolean }
28356
+ clearable: { type: Boolean },
28357
+ currentFacetStyle: {}
28306
28358
  },
28307
- emits: ["select", "clear"],
28359
+ emits: ["select", "clear", "expand"],
28308
28360
  setup(__props, { emit: __emit }) {
28309
- var _a25, _b25, _c;
28361
+ var _a25, _b25;
28310
28362
  const props = __props;
28311
28363
  const facet = vue.computed(() => {
28312
28364
  var _a26;
@@ -28320,17 +28372,17 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28320
28372
  const optionsStore = useOptionsStore();
28321
28373
  const screenStore = useScreenStore();
28322
28374
  const { currentFilterKeys } = storeToRefs(searchResultStore);
28323
- const { searchResultOptions } = storeToRefs(optionsStore);
28375
+ const { searchResultOptions, expandedFacets } = storeToRefs(optionsStore);
28324
28376
  const { isMobileWidth } = storeToRefs(screenStore);
28325
28377
  const emit = __emit;
28326
28378
  const allExpanded = vue.computed(() => {
28327
- var _a26, _b26, _c2, _d, _e, _f;
28379
+ var _a26, _b26, _c, _d, _e, _f;
28328
28380
  if (isMobileWidth.value) {
28329
- return (_c2 = (_b26 = (_a26 = props.options) == null ? void 0 : _a26.expandAll) == null ? void 0 : _b26.mobile) != null ? _c2 : false;
28381
+ return (_c = (_b26 = (_a26 = props.options) == null ? void 0 : _a26.expandAll) == null ? void 0 : _b26.mobile) != null ? _c : false;
28330
28382
  }
28331
28383
  return (_f = (_e = (_d = props.options) == null ? void 0 : _d.expandAll) == null ? void 0 : _e.desktop) != null ? _f : false;
28332
28384
  });
28333
- const isOpen = vue.ref((_c = ((_b25 = (_a25 = props.options) == null ? void 0 : _a25.expand) == null ? void 0 : _b25.includes(props.facet.key)) || allExpanded.value) != null ? _c : false);
28385
+ const isOpen = vue.ref((_b25 = ((_a25 = expandedFacets.value) == null ? void 0 : _a25.includes(props.facet.key)) || allExpanded.value) != null ? _b25 : false);
28334
28386
  const facetPanel = vue.ref(null);
28335
28387
  const facetType = vue.computed(() => {
28336
28388
  switch (facet.value.type) {
@@ -28372,9 +28424,16 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28372
28424
  var _a26;
28373
28425
  return getTranslatedFacetKey(props.facet, (_a26 = searchResultOptions.value.filters) == null ? void 0 : _a26.translations);
28374
28426
  });
28427
+ const expandSidebarOnFacetClick = vue.computed(() => {
28428
+ var _a26, _b26, _c;
28429
+ if (!props.currentFacetStyle || props.currentFacetStyle === "sidebar") {
28430
+ return false;
28431
+ }
28432
+ return (_c = (_b26 = (_a26 = props.options.style) == null ? void 0 : _a26.drawer) == null ? void 0 : _b26.expandSidebarOnFacetClick) != null ? _c : false;
28433
+ });
28375
28434
  vue.onMounted(() => {
28376
- var _a26;
28377
- if (((_a26 = props.options.style) == null ? void 0 : _a26.type) === "top-dropdown") {
28435
+ var _a26, _b26, _c;
28436
+ if (((_a26 = props.options.style) == null ? void 0 : _a26.type) === "top-dropdown" || ((_c = (_b26 = props.options) == null ? void 0 : _b26.style) == null ? void 0 : _c.type) === "drawer") {
28378
28437
  window.addEventListener("click", handleMouseClick);
28379
28438
  }
28380
28439
  });
@@ -28383,7 +28442,7 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28383
28442
  });
28384
28443
  const handleMouseClick = (e2) => {
28385
28444
  const el = facetPanel.value;
28386
- if (!el) {
28445
+ if (!el || !props.currentFacetStyle || props.currentFacetStyle === "sidebar") {
28387
28446
  return;
28388
28447
  }
28389
28448
  const isOutsideElement = el && !el.contains(e2.target);
@@ -28395,6 +28454,11 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28395
28454
  handleFacetQueryFilter();
28396
28455
  });
28397
28456
  const toggleFacet = () => {
28457
+ if (expandSidebarOnFacetClick.value) {
28458
+ expandedFacets.value = [facet.value.key];
28459
+ emit("expand");
28460
+ return;
28461
+ }
28398
28462
  isOpen.value = !isOpen.value;
28399
28463
  handleFacetQueryFilter();
28400
28464
  };
@@ -28427,12 +28491,12 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28427
28491
  "data-cy": "lupa-search-result-facet-label",
28428
28492
  onClick: toggleFacet
28429
28493
  }, [
28430
- vue.createElementVNode("div", _hoisted_1$M, vue.toDisplayString(facetLabel.value), 1),
28494
+ vue.createElementVNode("div", _hoisted_1$P, vue.toDisplayString(facetLabel.value), 1),
28431
28495
  vue.createElementVNode("div", {
28432
28496
  class: vue.normalizeClass(["lupa-facet-label-caret", isOpen.value && "open"])
28433
28497
  }, null, 2)
28434
28498
  ], 2),
28435
- isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$y, [
28499
+ isOpen.value && !expandSidebarOnFacetClick.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$A, [
28436
28500
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(facetType.value), {
28437
28501
  facet: facet.value,
28438
28502
  currentFilters: currentFilters.value[facet.value.key],
@@ -28450,12 +28514,154 @@ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
28450
28514
  };
28451
28515
  }
28452
28516
  }));
28453
- const _hoisted_1$L = { class: "lupa-search-result-facet-section" };
28454
- const _hoisted_2$x = {
28517
+ const useSidebarToggle = () => {
28518
+ const searchResultStore = useSearchResultStore();
28519
+ const optionsStore = useOptionsStore();
28520
+ const { currentFilterCount, isFilterSidebarVisible, isSortingSidebarVisible } = storeToRefs(searchResultStore);
28521
+ const { searchResultOptions } = storeToRefs(optionsStore);
28522
+ const labels = vue.computed(() => {
28523
+ return searchResultOptions.value.labels;
28524
+ });
28525
+ const showMobileFilterCount = vue.computed(
28526
+ () => {
28527
+ var _a25, _b25, _c, _d;
28528
+ return (_d = (_c = (_b25 = (_a25 = searchResultOptions.value.filters) == null ? void 0 : _a25.currentFilters) == null ? void 0 : _b25.mobileSidebar) == null ? void 0 : _c.showFilterCount) != null ? _d : false;
28529
+ }
28530
+ );
28531
+ const disableMobileBodyScrollLock = vue.computed(
28532
+ () => {
28533
+ var _a25, _b25, _c;
28534
+ return (_c = (_b25 = (_a25 = searchResultOptions.value.filters) == null ? void 0 : _a25.facets) == null ? void 0 : _b25.disableMobileBodyScrollLock) != null ? _c : false;
28535
+ }
28536
+ );
28537
+ const isSidebarVisible = vue.computed(
28538
+ () => isFilterSidebarVisible.value || isSortingSidebarVisible.value
28539
+ );
28540
+ const sortLabel = vue.computed(() => {
28541
+ var _a25, _b25;
28542
+ return (_b25 = (_a25 = searchResultOptions.value) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.sortBy;
28543
+ });
28544
+ const defaultLabel = vue.computed(() => {
28545
+ var _a25;
28546
+ return (_a25 = labels.value) == null ? void 0 : _a25.mobileFilterButton;
28547
+ });
28548
+ const activeLabel = vue.computed(() => {
28549
+ var _a25;
28550
+ return (_a25 = labels.value) == null ? void 0 : _a25.mobileFilterButtonActive;
28551
+ });
28552
+ const openLabel = vue.computed(() => {
28553
+ var _a25;
28554
+ return (_a25 = labels.value) == null ? void 0 : _a25.mobileFilterButtonOpen;
28555
+ });
28556
+ const label = vue.computed(() => {
28557
+ if (isSidebarVisible.value && openLabel.value) {
28558
+ return openLabel.value;
28559
+ }
28560
+ if (hasActiveFilters.value && activeLabel.value) {
28561
+ return activeLabel.value;
28562
+ }
28563
+ return defaultLabel.value;
28564
+ });
28565
+ const sortToggleVisible = vue.computed(() => {
28566
+ var _a25, _b25;
28567
+ return ((_b25 = (_a25 = searchResultOptions.value) == null ? void 0 : _a25.sortStyle) == null ? void 0 : _b25.type) === "drawer";
28568
+ });
28569
+ const handleFilterSidebarToggle = () => {
28570
+ searchResultStore.setSidebarState({
28571
+ visible: !isSidebarVisible.value,
28572
+ disableBodyScrolling: !disableMobileBodyScrollLock.value,
28573
+ sidebar: "filter"
28574
+ });
28575
+ };
28576
+ const handleSortSidebarToggle = () => {
28577
+ searchResultStore.setSidebarState({
28578
+ visible: !isSortingSidebarVisible.value,
28579
+ disableBodyScrolling: !disableMobileBodyScrollLock.value,
28580
+ sidebar: "sorting"
28581
+ });
28582
+ };
28583
+ const hasActiveFilters = vue.computed(() => currentFilterCount.value > 0);
28584
+ const checkCloseOnEscape = (e2) => {
28585
+ var _a25;
28586
+ if (!["Escape", "Esc"].includes((_a25 = e2.key) != null ? _a25 : "")) {
28587
+ return;
28588
+ }
28589
+ if (isSidebarVisible.value) {
28590
+ searchResultStore.setSidebarState({ visible: false, sidebar: "sorting" });
28591
+ searchResultStore.setSidebarState({ visible: false, sidebar: "filter" });
28592
+ }
28593
+ };
28594
+ vue.onMounted(() => {
28595
+ window.addEventListener("keydown", checkCloseOnEscape);
28596
+ });
28597
+ vue.onBeforeUnmount(() => {
28598
+ window.removeEventListener("keydown", checkCloseOnEscape);
28599
+ });
28600
+ return {
28601
+ isSidebarVisible,
28602
+ label,
28603
+ currentFilterCount,
28604
+ hasActiveFilters,
28605
+ showMobileFilterCount,
28606
+ sortLabel,
28607
+ sortToggleVisible,
28608
+ handleFilterSidebarToggle,
28609
+ handleSortSidebarToggle
28610
+ };
28611
+ };
28612
+ const _hoisted_1$O = {
28613
+ key: 0,
28614
+ class: "lupa-desktop-toggle-filter-count"
28615
+ };
28616
+ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
28617
+ __name: "DesktopFacetToggle",
28618
+ setup(__props) {
28619
+ const {
28620
+ isSidebarVisible,
28621
+ label,
28622
+ currentFilterCount,
28623
+ hasActiveFilters,
28624
+ showMobileFilterCount,
28625
+ handleFilterSidebarToggle
28626
+ } = useSidebarToggle();
28627
+ return (_ctx, _cache) => {
28628
+ return vue.openBlock(), vue.createElementBlock("div", {
28629
+ class: vue.normalizeClass(["lupa-desktop-toggle", {
28630
+ "lupa-desktop-toggle-filters-empty": vue.unref(currentFilterCount) < 1,
28631
+ "lupa-desktop-toggle-has-filters": vue.unref(hasActiveFilters),
28632
+ "lupa-sidebar-open": vue.unref(isSidebarVisible)
28633
+ }]),
28634
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
28635
+ (...args) => vue.unref(handleFilterSidebarToggle) && vue.unref(handleFilterSidebarToggle)(...args))
28636
+ }, [
28637
+ vue.createTextVNode(vue.toDisplayString(vue.unref(label)) + " ", 1),
28638
+ vue.unref(showMobileFilterCount) && vue.unref(currentFilterCount) > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$O, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
28639
+ ], 2);
28640
+ };
28641
+ }
28642
+ });
28643
+ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
28644
+ __name: "DesktopSortToggle",
28645
+ setup(__props) {
28646
+ const { isSidebarVisible, sortLabel, sortToggleVisible, handleSortSidebarToggle } = useSidebarToggle();
28647
+ return (_ctx, _cache) => {
28648
+ return vue.unref(sortToggleVisible) ? (vue.openBlock(), vue.createElementBlock("div", {
28649
+ key: 0,
28650
+ class: vue.normalizeClass(["lupa-desktop-toggle lupa-desktop-sort-toggle", {
28651
+ "lupa-sidebar-open": vue.unref(isSidebarVisible)
28652
+ }]),
28653
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
28654
+ (...args) => vue.unref(handleSortSidebarToggle) && vue.unref(handleSortSidebarToggle)(...args))
28655
+ }, vue.toDisplayString(vue.unref(sortLabel)), 3)) : vue.createCommentVNode("", true);
28656
+ };
28657
+ }
28658
+ });
28659
+ const _hoisted_1$N = { class: "lupa-search-result-facet-section" };
28660
+ const _hoisted_2$z = {
28455
28661
  key: 0,
28456
28662
  class: "lupa-facets-title"
28457
28663
  };
28458
- const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
28664
+ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
28459
28665
  __name: "FacetList",
28460
28666
  props: {
28461
28667
  options: {},
@@ -28467,6 +28673,7 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
28467
28673
  emits: ["select", "clear"],
28468
28674
  setup(__props, { emit: __emit }) {
28469
28675
  const props = __props;
28676
+ const { handleFilterSidebarToggle } = useSidebarToggle();
28470
28677
  const emit = __emit;
28471
28678
  const currentFiltersValue = vue.computed(() => {
28472
28679
  var _a25;
@@ -28482,6 +28689,12 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
28482
28689
  return !((_a25 = props.options.exclude) == null ? void 0 : _a25.includes(f2.key));
28483
28690
  }) : facetsValue.value;
28484
28691
  });
28692
+ const displayFacetStyle = vue.computed(() => {
28693
+ if (!props.facetStyle || props.facetStyle === "sidebar") {
28694
+ return "sidebar";
28695
+ }
28696
+ return "top-dropdown";
28697
+ });
28485
28698
  const handleFacetSelect = (facetAction) => {
28486
28699
  emit("select", facetAction);
28487
28700
  };
@@ -28490,29 +28703,33 @@ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
28490
28703
  };
28491
28704
  return (_ctx, _cache) => {
28492
28705
  var _a25;
28493
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$L, [
28494
- _ctx.options.labels.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$x, vue.toDisplayString(_ctx.options.labels.title), 1)) : vue.createCommentVNode("", true),
28706
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$N, [
28707
+ _ctx.options.labels.title ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$z, vue.toDisplayString(_ctx.options.labels.title), 1)) : vue.createCommentVNode("", true),
28495
28708
  vue.createElementVNode("div", {
28496
- class: vue.normalizeClass(["lupa-search-result-facet-list", "lupa-" + ((_a25 = _ctx.facetStyle) != null ? _a25 : "")])
28709
+ class: vue.normalizeClass(["lupa-search-result-facet-list", "lupa-" + ((_a25 = displayFacetStyle.value) != null ? _a25 : "")])
28497
28710
  }, [
28498
28711
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(displayFacets.value, (facet) => {
28499
28712
  var _a26;
28500
- return vue.openBlock(), vue.createBlock(_sfc_main$T, {
28713
+ return vue.openBlock(), vue.createBlock(_sfc_main$Z, {
28501
28714
  key: facet.key,
28502
28715
  facet,
28503
28716
  currentFilters: currentFiltersValue.value,
28504
28717
  options: _ctx.options,
28505
28718
  clearable: (_a26 = _ctx.clearable) != null ? _a26 : false,
28719
+ "current-facet-style": _ctx.facetStyle,
28506
28720
  onSelect: handleFacetSelect,
28507
- onClear: clear
28508
- }, null, 8, ["facet", "currentFilters", "options", "clearable"]);
28509
- }), 128))
28721
+ onClear: clear,
28722
+ onExpand: vue.unref(handleFilterSidebarToggle)
28723
+ }, null, 8, ["facet", "currentFilters", "options", "clearable", "current-facet-style", "onExpand"]);
28724
+ }), 128)),
28725
+ _ctx.facetStyle === "drawer" ? (vue.openBlock(), vue.createBlock(_sfc_main$Y, { key: 0 })) : vue.createCommentVNode("", true),
28726
+ _ctx.facetStyle === "drawer" || _ctx.facetStyle === "top-dropdown" ? (vue.openBlock(), vue.createBlock(_sfc_main$X, { key: 1 })) : vue.createCommentVNode("", true)
28510
28727
  ], 2)
28511
28728
  ]);
28512
28729
  };
28513
28730
  }
28514
28731
  });
28515
- const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
28732
+ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28516
28733
  __name: "FacetsButton",
28517
28734
  props: {
28518
28735
  options: {}
@@ -28537,8 +28754,33 @@ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
28537
28754
  };
28538
28755
  }
28539
28756
  });
28540
- const _hoisted_1$K = { class: "lupa-facets-filter-button-wrapper" };
28541
- const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28757
+ const _sfc_main$U = /* @__PURE__ */ vue.defineComponent({
28758
+ __name: "FacetsClearButton",
28759
+ props: {
28760
+ options: {}
28761
+ },
28762
+ emits: ["clear"],
28763
+ setup(__props, { emit: __emit }) {
28764
+ const props = __props;
28765
+ const emit = __emit;
28766
+ const label = vue.computed(() => {
28767
+ var _a25, _b25;
28768
+ return (_b25 = (_a25 = props.options.labels) == null ? void 0 : _a25.facetClearAllButton) != null ? _b25 : "";
28769
+ });
28770
+ const handleClick = () => {
28771
+ emit("clear");
28772
+ };
28773
+ return (_ctx, _cache) => {
28774
+ return label.value ? (vue.openBlock(), vue.createElementBlock("button", {
28775
+ key: 0,
28776
+ class: "lupa-facets-button-clear",
28777
+ onClick: vue.withModifiers(handleClick, ["stop"])
28778
+ }, vue.toDisplayString(label.value), 1)) : vue.createCommentVNode("", true);
28779
+ };
28780
+ }
28781
+ });
28782
+ const _hoisted_1$M = { class: "lupa-facets-filter-button-wrapper" };
28783
+ const _sfc_main$T = /* @__PURE__ */ vue.defineComponent({
28542
28784
  __name: "Facets",
28543
28785
  props: {
28544
28786
  options: {},
@@ -28551,6 +28793,7 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28551
28793
  const paramStore = useParamsStore();
28552
28794
  const searchResultStore = useSearchResultStore();
28553
28795
  const optionsStore = useOptionsStore();
28796
+ const { handleFilterSidebarToggle } = useSidebarToggle();
28554
28797
  const { filters } = storeToRefs(paramStore);
28555
28798
  const { facets: facets2, loadingFacets } = storeToRefs(searchResultStore);
28556
28799
  const { searchResultOptions } = storeToRefs(optionsStore);
@@ -28578,7 +28821,7 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28578
28821
  };
28579
28822
  });
28580
28823
  const showFilterButton = vue.computed(() => {
28581
- return props.options.filterBehavior === "withFilterButton";
28824
+ return props.options.filterBehavior === "withFilterButton" && props.facetStyle === "sidebar";
28582
28825
  });
28583
28826
  const handleFacetSelect = (facetAction) => {
28584
28827
  switch (facetAction.type) {
@@ -28619,6 +28862,10 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28619
28862
  const param = getFacetKey(facet.key, facet.type);
28620
28863
  paramStore.removeParameters({ paramsToRemove: [param] });
28621
28864
  };
28865
+ const clearAll = () => {
28866
+ paramStore.removeAllFilters();
28867
+ handleFilterSidebarToggle();
28868
+ };
28622
28869
  const filter = () => {
28623
28870
  emit("filter");
28624
28871
  };
@@ -28626,7 +28873,7 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28626
28873
  return vue.openBlock(), vue.createElementBlock("div", {
28627
28874
  class: vue.normalizeClass(["lupa-search-result-facets", { "lupa-search-result-facets-loading": vue.unref(loadingFacets) }])
28628
28875
  }, [
28629
- regularFacets.value ? (vue.openBlock(), vue.createBlock(_sfc_main$S, {
28876
+ regularFacets.value ? (vue.openBlock(), vue.createBlock(_sfc_main$W, {
28630
28877
  key: 0,
28631
28878
  options: _ctx.options,
28632
28879
  facets: regularFacets.value,
@@ -28636,10 +28883,15 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28636
28883
  onSelect: handleFacetSelect,
28637
28884
  onClear: clear
28638
28885
  }, null, 8, ["options", "facets", "currentFilters", "facetStyle", "clearable"])) : vue.createCommentVNode("", true),
28639
- vue.createElementVNode("div", _hoisted_1$K, [
28640
- showFilterButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$R, {
28886
+ vue.createElementVNode("div", _hoisted_1$M, [
28887
+ showFilterButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$U, {
28641
28888
  key: 0,
28642
28889
  options: _ctx.options,
28890
+ onClear: clearAll
28891
+ }, null, 8, ["options"])) : vue.createCommentVNode("", true),
28892
+ showFilterButton.value ? (vue.openBlock(), vue.createBlock(_sfc_main$V, {
28893
+ key: 1,
28894
+ options: _ctx.options,
28643
28895
  onFilter: filter
28644
28896
  }, null, 8, ["options"])) : vue.createCommentVNode("", true)
28645
28897
  ])
@@ -28647,16 +28899,17 @@ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28647
28899
  };
28648
28900
  }
28649
28901
  });
28650
- const _hoisted_1$J = {
28902
+ const _hoisted_1$L = {
28651
28903
  key: 0,
28652
28904
  id: "lupa-search-result-filters",
28653
28905
  class: "lupa-search-result-filters"
28654
28906
  };
28655
- const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
28907
+ const _sfc_main$S = /* @__PURE__ */ vue.defineComponent({
28656
28908
  __name: "SearchResultsFilters",
28657
28909
  props: {
28658
28910
  options: {},
28659
- expandable: { type: Boolean }
28911
+ expandable: { type: Boolean },
28912
+ style: {}
28660
28913
  },
28661
28914
  emits: ["filter"],
28662
28915
  setup(__props, { expose: __expose, emit: __emit }) {
@@ -28690,40 +28943,37 @@ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
28690
28943
  __expose({ fetch: fetch2 });
28691
28944
  return (_ctx, _cache) => {
28692
28945
  var _a25;
28693
- return visible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$J, [
28694
- showCurrentFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$_, {
28946
+ return visible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$L, [
28947
+ showCurrentFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$14, {
28695
28948
  key: 0,
28696
28949
  options: _ctx.options.currentFilters,
28697
28950
  expandable: (_a25 = _ctx.expandable) != null ? _a25 : false
28698
28951
  }, null, 8, ["options", "expandable"])) : vue.createCommentVNode("", true),
28699
- _ctx.options.categories ? (vue.openBlock(), vue.createBlock(_sfc_main$Y, {
28952
+ _ctx.options.categories ? (vue.openBlock(), vue.createBlock(_sfc_main$12, {
28700
28953
  key: 1,
28701
28954
  options: _ctx.options.categories,
28702
28955
  ref_key: "categoryFilters",
28703
28956
  ref: categoryFilters
28704
28957
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
28705
- _ctx.options.facets ? (vue.openBlock(), vue.createBlock(_sfc_main$Q, {
28958
+ _ctx.options.facets ? (vue.openBlock(), vue.createBlock(_sfc_main$T, {
28706
28959
  key: 2,
28707
28960
  options: _ctx.options.facets,
28961
+ "facet-style": _ctx.style,
28708
28962
  onFilter: filter
28709
- }, null, 8, ["options"])) : vue.createCommentVNode("", true)
28963
+ }, null, 8, ["options", "facet-style"])) : vue.createCommentVNode("", true)
28710
28964
  ])) : vue.createCommentVNode("", true);
28711
28965
  };
28712
28966
  }
28713
28967
  });
28714
- const _hoisted_1$I = {
28715
- key: 0,
28716
- class: "lupa-mobile-filter-sidebar"
28717
- };
28718
- const _hoisted_2$w = { class: "lupa-mobile-sidebar-content" };
28719
- const _hoisted_3$o = { class: "lupa-sidebar-top" };
28720
- const _hoisted_4$g = { class: "lupa-sidebar-title" };
28721
- const _hoisted_5$b = {
28968
+ const _hoisted_1$K = { class: "lupa-mobile-sidebar-content" };
28969
+ const _hoisted_2$y = { class: "lupa-sidebar-top" };
28970
+ const _hoisted_3$q = { class: "lupa-sidebar-title" };
28971
+ const _hoisted_4$i = {
28722
28972
  key: 0,
28723
28973
  class: "lupa-sidebar-filter-count"
28724
28974
  };
28725
- const _hoisted_6$5 = { class: "lupa-sidebar-filter-options" };
28726
- const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28975
+ const _hoisted_5$c = { class: "lupa-sidebar-filter-options" };
28976
+ const _sfc_main$R = /* @__PURE__ */ vue.defineComponent({
28727
28977
  __name: "MobileFilterSidebar",
28728
28978
  props: {
28729
28979
  options: {}
@@ -28732,7 +28982,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28732
28982
  setup(__props, { emit: __emit }) {
28733
28983
  const props = __props;
28734
28984
  const searchResultStore = useSearchResultStore();
28735
- const { currentFilterCount } = storeToRefs(searchResultStore);
28985
+ const { currentFilterCount, isFilterSidebarVisible, isSidebarClosing } = storeToRefs(searchResultStore);
28736
28986
  const emit = __emit;
28737
28987
  const sidebarTitle = vue.computed(() => {
28738
28988
  var _a25, _b25, _c;
@@ -28742,7 +28992,6 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28742
28992
  var _a25, _b25;
28743
28993
  return Boolean((_b25 = (_a25 = props.options.currentFilters) == null ? void 0 : _a25.mobileSidebar) == null ? void 0 : _b25.showFilterCount) && currentFilterCount.value > 0;
28744
28994
  });
28745
- const isMobileSidebarVisible = vue.computed(() => searchResultStore.isMobileSidebarVisible);
28746
28995
  const isActiveFiltersExpanded = vue.computed(() => {
28747
28996
  var _a25, _b25;
28748
28997
  return !((_b25 = (_a25 = props.options.currentFilters) == null ? void 0 : _a25.mobileSidebar) == null ? void 0 : _b25.activeFiltersExpanded);
@@ -28755,42 +29004,46 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28755
29004
  handleMobileToggle();
28756
29005
  };
28757
29006
  return (_ctx, _cache) => {
28758
- return isMobileSidebarVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$I, [
29007
+ return vue.unref(isFilterSidebarVisible) ? (vue.openBlock(), vue.createElementBlock("div", {
29008
+ key: 0,
29009
+ class: vue.normalizeClass(["lupa-mobile-filter-sidebar", { "lupa-mobile-filter-sidebar-is-closing": vue.unref(isSidebarClosing) }])
29010
+ }, [
28759
29011
  vue.createElementVNode("div", {
28760
29012
  class: "lupa-sidebar-close",
28761
29013
  onClick: vue.withModifiers(handleMobileToggle, ["stop"])
28762
29014
  }),
28763
- vue.createElementVNode("div", _hoisted_2$w, [
28764
- vue.createElementVNode("div", _hoisted_3$o, [
28765
- vue.createElementVNode("div", _hoisted_4$g, [
29015
+ vue.createElementVNode("div", _hoisted_1$K, [
29016
+ vue.createElementVNode("div", _hoisted_2$y, [
29017
+ vue.createElementVNode("div", _hoisted_3$q, [
28766
29018
  vue.createTextVNode(vue.toDisplayString(sidebarTitle.value) + " ", 1),
28767
- isFilterCountVisible.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$b, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
29019
+ isFilterCountVisible.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$i, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
28768
29020
  ]),
28769
29021
  vue.createElementVNode("div", {
28770
29022
  class: "lupa-filter-toggle-mobile",
28771
29023
  onClick: handleMobileToggle
28772
29024
  })
28773
29025
  ]),
28774
- vue.createElementVNode("div", _hoisted_6$5, [
28775
- vue.createVNode(_sfc_main$P, {
29026
+ vue.createElementVNode("div", _hoisted_5$c, [
29027
+ vue.createVNode(_sfc_main$S, {
28776
29028
  options: _ctx.options,
28777
29029
  expandable: isActiveFiltersExpanded.value,
29030
+ style: "sidebar",
28778
29031
  onFilter: filter
28779
29032
  }, null, 8, ["options", "expandable"])
28780
29033
  ])
28781
29034
  ])
28782
- ])) : vue.createCommentVNode("", true);
29035
+ ], 2)) : vue.createCommentVNode("", true);
28783
29036
  };
28784
29037
  }
28785
29038
  });
28786
- const _hoisted_1$H = { id: "lupa-search-results-breadcrumbs" };
28787
- const _hoisted_2$v = ["href", "onClick"];
28788
- const _hoisted_3$n = {
29039
+ const _hoisted_1$J = { id: "lupa-search-results-breadcrumbs" };
29040
+ const _hoisted_2$x = ["href", "onClick"];
29041
+ const _hoisted_3$p = {
28789
29042
  key: 1,
28790
29043
  class: "lupa-search-results-breadcrumb-text"
28791
29044
  };
28792
- const _hoisted_4$f = { key: 2 };
28793
- const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
29045
+ const _hoisted_4$h = { key: 2 };
29046
+ const _sfc_main$Q = /* @__PURE__ */ vue.defineComponent({
28794
29047
  __name: "SearchResultsBreadcrumbs",
28795
29048
  props: {
28796
29049
  breadcrumbs: {}
@@ -28815,7 +29068,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
28815
29068
  handleRoutingEvent(link, event, hasEventRouting.value);
28816
29069
  };
28817
29070
  return (_ctx, _cache) => {
28818
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H, [
29071
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$J, [
28819
29072
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(breadcrumbsValue.value, (breadcrumb, index) => {
28820
29073
  var _a25;
28821
29074
  return vue.openBlock(), vue.createElementBlock("span", {
@@ -28830,20 +29083,20 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
28830
29083
  var _a26;
28831
29084
  return handleNavigation(e2, (_a26 = breadcrumb == null ? void 0 : breadcrumb.link) != null ? _a26 : "");
28832
29085
  }
28833
- }, vue.toDisplayString(getLabel(breadcrumb.label)), 9, _hoisted_2$v)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$n, vue.toDisplayString(getLabel(breadcrumb.label)), 1)),
28834
- index < breadcrumbsValue.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$f, vue.toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : vue.createCommentVNode("", true)
29086
+ }, vue.toDisplayString(getLabel(breadcrumb.label)), 9, _hoisted_2$x)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$p, vue.toDisplayString(getLabel(breadcrumb.label)), 1)),
29087
+ index < breadcrumbsValue.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$h, vue.toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : vue.createCommentVNode("", true)
28835
29088
  ]);
28836
29089
  }), 128))
28837
29090
  ]);
28838
29091
  };
28839
29092
  }
28840
29093
  });
28841
- const _hoisted_1$G = {
29094
+ const _hoisted_1$I = {
28842
29095
  key: 0,
28843
29096
  id: "lupa-search-result-filters",
28844
29097
  class: "lupa-search-result-filters lupa-search-result-top-filters"
28845
29098
  };
28846
- const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
29099
+ const _sfc_main$P = /* @__PURE__ */ vue.defineComponent({
28847
29100
  __name: "FiltersTopDropdown",
28848
29101
  props: {
28849
29102
  options: {}
@@ -28861,8 +29114,8 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
28861
29114
  });
28862
29115
  return (_ctx, _cache) => {
28863
29116
  var _a25;
28864
- return visible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$G, [
28865
- _ctx.options.facets ? (vue.openBlock(), vue.createBlock(_sfc_main$Q, {
29117
+ return visible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$I, [
29118
+ _ctx.options.facets ? (vue.openBlock(), vue.createBlock(_sfc_main$T, {
28866
29119
  key: 0,
28867
29120
  options: _ctx.options.facets,
28868
29121
  "facet-style": (_a25 = _ctx.options.facets.style) == null ? void 0 : _a25.type,
@@ -28873,8 +29126,8 @@ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
28873
29126
  };
28874
29127
  }
28875
29128
  });
28876
- const _hoisted_1$F = { id: "lupa-search-results-layout-selection" };
28877
- const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
29129
+ const _hoisted_1$H = { id: "lupa-search-results-layout-selection" };
29130
+ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28878
29131
  __name: "SearchResultsLayoutSelection",
28879
29132
  setup(__props) {
28880
29133
  const searchResultStore = useSearchResultStore();
@@ -28885,7 +29138,7 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
28885
29138
  searchResultStore.setLayout(layout2);
28886
29139
  };
28887
29140
  return (_ctx, _cache) => {
28888
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
29141
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$H, [
28889
29142
  vue.createElementVNode("div", {
28890
29143
  class: vue.normalizeClass([
28891
29144
  "lupa-layout-selection-grid",
@@ -28907,64 +29160,38 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
28907
29160
  };
28908
29161
  }
28909
29162
  });
28910
- const _hoisted_1$E = {
29163
+ const _hoisted_1$G = {
28911
29164
  key: 0,
28912
29165
  class: "lupa-mobile-toggle-filter-count"
28913
29166
  };
28914
- const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
29167
+ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
28915
29168
  __name: "SearchResultsMobileToggle",
28916
- props: {
28917
- labels: {},
28918
- showFilterCount: { type: Boolean }
28919
- },
28920
29169
  setup(__props) {
28921
- const props = __props;
28922
- const searchResultStore = useSearchResultStore();
28923
- const optionsStore = useOptionsStore();
28924
- const { currentFilterCount, isMobileSidebarVisible } = storeToRefs(searchResultStore);
28925
- const { searchResultOptions } = storeToRefs(optionsStore);
28926
- const disableMobileBodyScrollLock = vue.computed(
28927
- () => {
28928
- var _a25, _b25, _c;
28929
- return (_c = (_b25 = (_a25 = searchResultOptions.value.filters) == null ? void 0 : _a25.facets) == null ? void 0 : _b25.disableMobileBodyScrollLock) != null ? _c : false;
28930
- }
28931
- );
28932
- const isSidebarVisible = vue.computed(() => isMobileSidebarVisible.value);
28933
- const defaultLabel = vue.computed(() => props.labels.mobileFilterButton);
28934
- const activeLabel = vue.computed(() => props.labels.mobileFilterButtonActive);
28935
- const openLabel = vue.computed(() => props.labels.mobileFilterButtonOpen);
28936
- const label = vue.computed(() => {
28937
- if (isSidebarVisible.value && openLabel.value) {
28938
- return openLabel.value;
28939
- }
28940
- if (hasActiveFilters.value && activeLabel.value) {
28941
- return activeLabel.value;
28942
- }
28943
- return defaultLabel.value;
28944
- });
28945
- const handleMobileToggle = () => {
28946
- searchResultStore.setSidebarState({
28947
- visible: !isSidebarVisible.value,
28948
- disableBodyScrolling: !disableMobileBodyScrollLock.value
28949
- });
28950
- };
28951
- const hasActiveFilters = vue.computed(() => currentFilterCount.value > 0);
29170
+ const {
29171
+ isSidebarVisible,
29172
+ label,
29173
+ currentFilterCount,
29174
+ hasActiveFilters,
29175
+ showMobileFilterCount,
29176
+ handleFilterSidebarToggle
29177
+ } = useSidebarToggle();
28952
29178
  return (_ctx, _cache) => {
28953
29179
  return vue.openBlock(), vue.createElementBlock("div", {
28954
29180
  class: vue.normalizeClass(["lupa-mobile-toggle", {
28955
29181
  "lupa-mobile-toggle-filters-empty": vue.unref(currentFilterCount) < 1,
28956
- "lupa-mobile-toggle-has-filters": hasActiveFilters.value,
28957
- "lupa-sidebar-open": isSidebarVisible.value
29182
+ "lupa-mobile-toggle-has-filters": vue.unref(hasActiveFilters),
29183
+ "lupa-sidebar-open": vue.unref(isSidebarVisible)
28958
29184
  }]),
28959
- onClick: handleMobileToggle
29185
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
29186
+ (...args) => vue.unref(handleFilterSidebarToggle) && vue.unref(handleFilterSidebarToggle)(...args))
28960
29187
  }, [
28961
- vue.createTextVNode(vue.toDisplayString(label.value) + " ", 1),
28962
- _ctx.showFilterCount && vue.unref(currentFilterCount) > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$E, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
29188
+ vue.createTextVNode(vue.toDisplayString(vue.unref(label)) + " ", 1),
29189
+ vue.unref(showMobileFilterCount) && vue.unref(currentFilterCount) > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$G, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
28963
29190
  ], 2);
28964
29191
  };
28965
29192
  }
28966
29193
  });
28967
- const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
29194
+ const _sfc_main$M = /* @__PURE__ */ vue.defineComponent({
28968
29195
  __name: "SearchResultsMobileFilterClose",
28969
29196
  props: {
28970
29197
  label: {}
@@ -28984,20 +29211,20 @@ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
28984
29211
  };
28985
29212
  }
28986
29213
  });
28987
- const _hoisted_1$D = {
29214
+ const _hoisted_1$F = {
28988
29215
  key: 0,
28989
29216
  id: "lupa-search-results-page-select",
28990
29217
  "data-cy": "lupa-search-results-page-select"
28991
29218
  };
28992
- const _hoisted_2$u = {
29219
+ const _hoisted_2$w = {
28993
29220
  key: 0,
28994
29221
  class: "lupa-page-number-separator"
28995
29222
  };
28996
- const _hoisted_3$m = {
29223
+ const _hoisted_3$o = {
28997
29224
  key: 0,
28998
29225
  class: "lupa-page-number-separator"
28999
29226
  };
29000
- const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29227
+ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
29001
29228
  __name: "SearchResultsPageSelect",
29002
29229
  props: {
29003
29230
  lastPageLabel: {},
@@ -29092,7 +29319,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29092
29319
  };
29093
29320
  return (_ctx, _cache) => {
29094
29321
  var _a25;
29095
- return showPagination.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [
29322
+ return showPagination.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$F, [
29096
29323
  showBack.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29097
29324
  key: 0,
29098
29325
  class: vue.normalizeClass(firstPageLabel.value === "<" ? "lupa-page-arrow" : "lupa-show-less"),
@@ -29116,7 +29343,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29116
29343
  _: 1,
29117
29344
  __: [4]
29118
29345
  }, 8, ["href"])),
29119
- showFirstPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$u, "...")) : vue.createCommentVNode("", true)
29346
+ showFirstPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$w, "...")) : vue.createCommentVNode("", true)
29120
29347
  ], 64)) : vue.createCommentVNode("", true),
29121
29348
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(pages.value, (page) => {
29122
29349
  return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
@@ -29136,7 +29363,7 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29136
29363
  }, 1032, ["href", "onClick", "class"]);
29137
29364
  }), 128)),
29138
29365
  showLastPage.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
29139
- showLastPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$m, "...")) : vue.createCommentVNode("", true),
29366
+ showLastPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$o, "...")) : vue.createCommentVNode("", true),
29140
29367
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29141
29368
  href: getHref((_a25 = lastPage.value) != null ? _a25 : 1),
29142
29369
  class: "lupa-page-number lupa-page-number-last",
@@ -29167,18 +29394,18 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29167
29394
  };
29168
29395
  }
29169
29396
  });
29170
- const _hoisted_1$C = {
29397
+ const _hoisted_1$E = {
29171
29398
  id: "lupa-search-results-page-size",
29172
29399
  "data-cy": "lupa-search-results-page-size"
29173
29400
  };
29174
- const _hoisted_2$t = { id: "lupa-select" };
29175
- const _hoisted_3$l = {
29401
+ const _hoisted_2$v = { id: "lupa-select" };
29402
+ const _hoisted_3$n = {
29176
29403
  class: "lupa-select-label",
29177
29404
  for: "lupa-page-size-select-dropdown"
29178
29405
  };
29179
- const _hoisted_4$e = ["aria-label"];
29180
- const _hoisted_5$a = ["value"];
29181
- const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
29406
+ const _hoisted_4$g = ["aria-label"];
29407
+ const _hoisted_5$b = ["value"];
29408
+ const _sfc_main$K = /* @__PURE__ */ vue.defineComponent({
29182
29409
  __name: "SearchResultsPageSize",
29183
29410
  props: {
29184
29411
  labels: {},
@@ -29208,9 +29435,9 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
29208
29435
  };
29209
29436
  return (_ctx, _cache) => {
29210
29437
  var _a25, _b25, _c;
29211
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$C, [
29212
- vue.createElementVNode("div", _hoisted_2$t, [
29213
- vue.createElementVNode("label", _hoisted_3$l, vue.toDisplayString(label.value), 1),
29438
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$E, [
29439
+ vue.createElementVNode("div", _hoisted_2$v, [
29440
+ vue.createElementVNode("label", _hoisted_3$n, vue.toDisplayString(label.value), 1),
29214
29441
  vue.createElementVNode("select", {
29215
29442
  id: "lupa-page-size-select-dropdown",
29216
29443
  class: "lupa-select-dropdown",
@@ -29224,110 +29451,161 @@ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
29224
29451
  return vue.openBlock(), vue.createElementBlock("option", {
29225
29452
  key: option,
29226
29453
  value: option
29227
- }, vue.toDisplayString(prefixLabel.value) + vue.toDisplayString(option), 9, _hoisted_5$a);
29454
+ }, vue.toDisplayString(prefixLabel.value) + vue.toDisplayString(option), 9, _hoisted_5$b);
29228
29455
  }), 128))
29229
- ], 40, _hoisted_4$e)
29456
+ ], 40, _hoisted_4$g)
29230
29457
  ])
29231
29458
  ]);
29232
29459
  };
29233
29460
  }
29234
29461
  });
29235
- const _hoisted_1$B = {
29462
+ const useSorting = () => {
29463
+ const paramStore = useParamsStore();
29464
+ const optionStore = useOptionsStore();
29465
+ const { sort } = storeToRefs(paramStore);
29466
+ const { ariaLabels, searchResultOptions } = storeToRefs(optionStore);
29467
+ const selectedKey = vue.ref("");
29468
+ const previousKey = vue.ref("");
29469
+ const sortStyle = vue.computed(() => {
29470
+ return searchResultOptions.value.sortStyle;
29471
+ });
29472
+ const sortOptions = vue.computed(() => {
29473
+ return searchResultOptions.value.sort;
29474
+ });
29475
+ const callbacks = vue.computed(() => {
29476
+ return searchResultOptions.value.callbacks;
29477
+ });
29478
+ const sotyByTitleLabel = vue.computed(() => {
29479
+ var _a25;
29480
+ return (_a25 = searchResultOptions.value.labels) == null ? void 0 : _a25.sortBy;
29481
+ });
29482
+ const sortItems = vue.computed(() => {
29483
+ if (sortOptions.value && sortOptions.value.length) {
29484
+ return sortOptions.value;
29485
+ } else {
29486
+ return [];
29487
+ }
29488
+ });
29489
+ const defaultSortValue = vue.computed(() => {
29490
+ var _a25, _b25, _c;
29491
+ return (_c = (_a25 = sortOptions.value) == null ? void 0 : _a25.find((x) => x.default)) != null ? _c : (_b25 = sortItems.value) == null ? void 0 : _b25[0];
29492
+ });
29493
+ const setSortValue = () => {
29494
+ var _a25, _b25;
29495
+ const optionToSelect = (_a25 = sortItems.value.find((x) => x.key === sort.value)) == null ? void 0 : _a25.key;
29496
+ selectedKey.value = optionToSelect != null ? optionToSelect : (_b25 = defaultSortValue.value) == null ? void 0 : _b25.key;
29497
+ previousKey.value = selectedKey.value;
29498
+ };
29499
+ vue.watch(sort, () => setSortValue());
29500
+ const handleSelect = () => {
29501
+ var _a25, _b25, _c;
29502
+ const value = (_a25 = sortItems.value.find((x) => x.key === selectedKey.value)) == null ? void 0 : _a25.key;
29503
+ if (!value) {
29504
+ return;
29505
+ }
29506
+ paramStore.setSortSettings({ selectedSortKey: value, previousSortKey: previousKey.value });
29507
+ (_c = (_b25 = callbacks.value) == null ? void 0 : _b25.onSortChange) == null ? void 0 : _c.call(_b25, { selectedSortKey: value, previousSortKey: previousKey.value });
29508
+ paramStore.appendParams({
29509
+ params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS.SORT), value }],
29510
+ paramsToRemove: [optionStore.getQueryParamName(QUERY_PARAMS.PAGE)]
29511
+ });
29512
+ previousKey.value = selectedKey.value;
29513
+ };
29514
+ return {
29515
+ sotyByTitleLabel,
29516
+ sortItems,
29517
+ selectedKey,
29518
+ ariaLabels,
29519
+ sortOptions,
29520
+ sortStyle,
29521
+ handleSelect,
29522
+ setSortValue
29523
+ };
29524
+ };
29525
+ const _hoisted_1$D = {
29526
+ key: 0,
29236
29527
  id: "lupa-search-results-sort",
29237
29528
  class: "lupa-search-results-sort"
29238
29529
  };
29239
- const _hoisted_2$s = { id: "lupa-select" };
29240
- const _hoisted_3$k = {
29530
+ const _hoisted_2$u = { id: "lupa-select" };
29531
+ const _hoisted_3$m = {
29241
29532
  class: "lupa-select-label",
29242
29533
  for: "lupa-sort-select-dropdown"
29243
29534
  };
29244
- const _hoisted_4$d = ["aria-label"];
29245
- const _hoisted_5$9 = ["value"];
29246
- const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
29535
+ const _hoisted_4$f = ["aria-label"];
29536
+ const _hoisted_5$a = ["value"];
29537
+ const _sfc_main$J = /* @__PURE__ */ vue.defineComponent({
29247
29538
  __name: "SearchResultsSort",
29248
- props: {
29249
- options: {},
29250
- callbacks: {}
29251
- },
29252
29539
  setup(__props) {
29253
- const props = __props;
29254
- const paramStore = useParamsStore();
29255
- const optionStore = useOptionsStore();
29256
- const { sort } = storeToRefs(paramStore);
29257
- const { ariaLabels } = storeToRefs(optionStore);
29258
- const selectedKey = vue.ref("");
29259
- const previousKey = vue.ref("");
29260
- const sortItems = vue.computed(() => {
29261
- if (props.options.options && props.options.options.length) {
29262
- return props.options.options;
29263
- } else {
29264
- return [];
29265
- }
29266
- });
29267
- const defaultSortValue = vue.computed(() => {
29268
- var _a25;
29269
- return (_a25 = props.options.options.find((x) => x.default)) != null ? _a25 : props.options.options[0];
29270
- });
29271
- const setSortValue = () => {
29272
- var _a25, _b25;
29273
- const optionToSelect = (_a25 = sortItems.value.find((x) => x.key === sort.value)) == null ? void 0 : _a25.key;
29274
- selectedKey.value = optionToSelect != null ? optionToSelect : (_b25 = defaultSortValue.value) == null ? void 0 : _b25.key;
29275
- previousKey.value = selectedKey.value;
29276
- };
29277
- vue.watch(sort, () => setSortValue());
29540
+ const {
29541
+ sortItems,
29542
+ selectedKey,
29543
+ ariaLabels,
29544
+ sotyByTitleLabel,
29545
+ sortStyle,
29546
+ handleSelect,
29547
+ setSortValue
29548
+ } = useSorting();
29278
29549
  vue.onMounted(() => {
29279
29550
  setSortValue();
29280
29551
  });
29281
- const handleSelect = () => {
29282
- var _a25, _b25, _c;
29283
- const value = (_a25 = sortItems.value.find((x) => x.key === selectedKey.value)) == null ? void 0 : _a25.key;
29284
- if (!value) {
29285
- return;
29286
- }
29287
- paramStore.setSortSettings({ selectedSortKey: value, previousSortKey: previousKey.value });
29288
- (_c = (_b25 = props.callbacks) == null ? void 0 : _b25.onSortChange) == null ? void 0 : _c.call(_b25, { selectedSortKey: value, previousSortKey: previousKey.value });
29289
- paramStore.appendParams({
29290
- params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS.SORT), value }],
29291
- paramsToRemove: [optionStore.getQueryParamName(QUERY_PARAMS.PAGE)]
29292
- });
29293
- previousKey.value = selectedKey.value;
29294
- };
29552
+ const showDefaultSort = vue.computed(() => {
29553
+ var _a25;
29554
+ return !sortStyle.value || ((_a25 = sortStyle.value) == null ? void 0 : _a25.type) !== "drawer";
29555
+ });
29295
29556
  return (_ctx, _cache) => {
29296
29557
  var _a25, _b25;
29297
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$B, [
29298
- vue.createElementVNode("div", _hoisted_2$s, [
29299
- vue.createElementVNode("label", _hoisted_3$k, vue.toDisplayString(_ctx.options.label), 1),
29558
+ return showDefaultSort.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [
29559
+ vue.createElementVNode("div", _hoisted_2$u, [
29560
+ vue.createElementVNode("label", _hoisted_3$m, vue.toDisplayString(vue.unref(sotyByTitleLabel)), 1),
29300
29561
  vue.withDirectives(vue.createElementVNode("select", {
29301
29562
  id: "lupa-sort-select-dropdown",
29302
29563
  class: "lupa-select-dropdown",
29303
- "aria-label": (_b25 = (_a25 = vue.unref(ariaLabels)) == null ? void 0 : _a25.sortBySelect) != null ? _b25 : _ctx.options.label,
29564
+ "aria-label": (_b25 = (_a25 = vue.unref(ariaLabels)) == null ? void 0 : _a25.sortBySelect) != null ? _b25 : vue.unref(sotyByTitleLabel),
29304
29565
  "data-cy": "lupa-sort-select-dropdown",
29305
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedKey.value = $event),
29306
- onChange: handleSelect,
29566
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => vue.isRef(selectedKey) ? selectedKey.value = $event : null),
29567
+ onChange: _cache[1] || (_cache[1] = //@ts-ignore
29568
+ (...args) => vue.unref(handleSelect) && vue.unref(handleSelect)(...args)),
29307
29569
  ref: "select"
29308
29570
  }, [
29309
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(sortItems.value, (option) => {
29571
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(sortItems), (option) => {
29310
29572
  return vue.openBlock(), vue.createElementBlock("option", {
29311
29573
  key: option.key,
29312
29574
  value: option.key
29313
- }, vue.toDisplayString(option.label), 9, _hoisted_5$9);
29575
+ }, vue.toDisplayString(option.label), 9, _hoisted_5$a);
29314
29576
  }), 128))
29315
- ], 40, _hoisted_4$d), [
29316
- [vue.vModelSelect, selectedKey.value]
29577
+ ], 40, _hoisted_4$f), [
29578
+ [vue.vModelSelect, vue.unref(selectedKey)]
29317
29579
  ])
29318
29580
  ])
29319
- ]);
29581
+ ])) : vue.createCommentVNode("", true);
29582
+ };
29583
+ }
29584
+ });
29585
+ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29586
+ __name: "SearchResultsSortDrawerToggle",
29587
+ setup(__props) {
29588
+ const { isSidebarVisible, sortLabel, sortToggleVisible, handleSortSidebarToggle } = useSidebarToggle();
29589
+ return (_ctx, _cache) => {
29590
+ return vue.unref(sortToggleVisible) ? (vue.openBlock(), vue.createElementBlock("div", {
29591
+ key: 0,
29592
+ class: vue.normalizeClass(["lupa-mobile-toggle lupa-mobile-sort-toggle", {
29593
+ "lupa-sidebar-open": vue.unref(isSidebarVisible)
29594
+ }]),
29595
+ onClick: _cache[0] || (_cache[0] = //@ts-ignore
29596
+ (...args) => vue.unref(handleSortSidebarToggle) && vue.unref(handleSortSidebarToggle)(...args))
29597
+ }, vue.toDisplayString(vue.unref(sortLabel)), 3)) : vue.createCommentVNode("", true);
29320
29598
  };
29321
29599
  }
29322
29600
  });
29323
- const _hoisted_1$A = { class: "lupa-toolbar-left" };
29324
- const _hoisted_2$r = {
29601
+ const _hoisted_1$C = { class: "lupa-toolbar-left" };
29602
+ const _hoisted_2$t = {
29325
29603
  key: 0,
29326
29604
  class: "lupa-toolbar-right-title"
29327
29605
  };
29328
- const _hoisted_3$j = { key: 2 };
29329
- const _hoisted_4$c = { key: 4 };
29330
- const _hoisted_5$8 = { key: 6 };
29606
+ const _hoisted_3$l = { key: 2 };
29607
+ const _hoisted_4$e = { key: 4 };
29608
+ const _hoisted_5$9 = { key: 6 };
29331
29609
  const _hoisted_6$4 = { class: "lupa-toolbar-right" };
29332
29610
  const _hoisted_7$2 = {
29333
29611
  key: 0,
@@ -29335,7 +29613,7 @@ const _hoisted_7$2 = {
29335
29613
  };
29336
29614
  const _hoisted_8 = { key: 2 };
29337
29615
  const _hoisted_9 = { key: 4 };
29338
- const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29616
+ const _sfc_main$H = /* @__PURE__ */ vue.defineComponent({
29339
29617
  __name: "SearchResultsToolbar",
29340
29618
  props: {
29341
29619
  options: {},
@@ -29351,7 +29629,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29351
29629
  const searchResultStore = useSearchResultStore();
29352
29630
  const optionsStore = useOptionsStore();
29353
29631
  const { page, limit } = storeToRefs(paramStore);
29354
- const { hasAnyFilter, searchResult, isMobileSidebarVisible } = storeToRefs(searchResultStore);
29632
+ const { hasAnyFilter, searchResult, isFilterSidebarVisible } = storeToRefs(searchResultStore);
29355
29633
  const { currentResolutionPageSizes } = storeToRefs(optionsStore);
29356
29634
  const isBottomLocation = vue.computed(() => {
29357
29635
  return props.paginationLocation === "bottom";
@@ -29429,7 +29707,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29429
29707
  var _a25;
29430
29708
  return (_a25 = optionsValue.value.labels.toolbarRightLabel) != null ? _a25 : "";
29431
29709
  });
29432
- const showMobileFilterCount = vue.computed(() => {
29710
+ vue.computed(() => {
29433
29711
  var _a25, _b25, _c;
29434
29712
  return Boolean((_c = (_b25 = (_a25 = optionsValue.value.filters) == null ? void 0 : _a25.currentFilters) == null ? void 0 : _b25.mobileSidebar) == null ? void 0 : _c.showFilterCount);
29435
29713
  });
@@ -29448,39 +29726,37 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29448
29726
  id: "lupa-search-results-toolbar",
29449
29727
  class: vue.normalizeClass({ "lupa-filter-no-results": !hasResults.value })
29450
29728
  }, [
29451
- vue.createElementVNode("div", _hoisted_1$A, [
29452
- toolbarLeftLabel.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$r, vue.toDisplayString(toolbarLeftLabel.value), 1)) : vue.createCommentVNode("", true),
29453
- showLayoutSelection.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, { key: 1 })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$j)),
29454
- showItemSummary.value ? (vue.openBlock(), vue.createBlock(_sfc_main$11, {
29729
+ vue.createElementVNode("div", _hoisted_1$C, [
29730
+ toolbarLeftLabel.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$t, vue.toDisplayString(toolbarLeftLabel.value), 1)) : vue.createCommentVNode("", true),
29731
+ showLayoutSelection.value ? (vue.openBlock(), vue.createBlock(_sfc_main$O, { key: 1 })) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$l)),
29732
+ showItemSummary.value ? (vue.openBlock(), vue.createBlock(_sfc_main$17, {
29455
29733
  key: 3,
29456
29734
  label: searchSummaryLabel.value,
29457
29735
  clearable: vue.unref(hasAnyFilter) && showFilterClear.value,
29458
29736
  onClear: handleClearAll
29459
- }, null, 8, ["label", "clearable"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$c)),
29460
- displayPageSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$I, {
29737
+ }, null, 8, ["label", "clearable"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$e)),
29738
+ displayPageSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$L, {
29461
29739
  key: 5,
29462
29740
  options: paginationOptions.value.pageSelect,
29463
29741
  "last-page-label": paginationOptions.value.labels.showMore,
29464
29742
  "first-page-label": paginationOptions.value.labels.showLess
29465
- }, null, 8, ["options", "last-page-label", "first-page-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$8))
29743
+ }, null, 8, ["options", "last-page-label", "first-page-label"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$9))
29466
29744
  ]),
29467
29745
  vue.createElementVNode("div", _hoisted_6$4, [
29468
29746
  toolbarRightLabel.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7$2, vue.toDisplayString(toolbarRightLabel.value), 1)) : vue.createCommentVNode("", true),
29469
- vue.createVNode(_sfc_main$K, {
29470
- labels: optionsValue.value.labels,
29471
- "show-filter-count": showMobileFilterCount.value
29472
- }, null, 8, ["labels", "show-filter-count"]),
29473
- paginationDisplay.value.pageSize ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
29747
+ vue.createVNode(_sfc_main$N),
29748
+ vue.createVNode(_sfc_main$I),
29749
+ paginationDisplay.value.pageSize ? (vue.openBlock(), vue.createBlock(_sfc_main$K, {
29474
29750
  key: 1,
29475
29751
  options: paginationOptions.value.pageSize,
29476
29752
  labels: paginationOptions.value.labels
29477
29753
  }, null, 8, ["options", "labels"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8)),
29478
- sortOptions.value ? (vue.openBlock(), vue.createBlock(_sfc_main$G, {
29754
+ sortOptions.value ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
29479
29755
  key: 3,
29480
29756
  options: sortOptions.value,
29481
29757
  callbacks: callbacks.value
29482
29758
  }, null, 8, ["options", "callbacks"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_9)),
29483
- showFiltersCloseButton.value && vue.unref(isMobileSidebarVisible) ? (vue.openBlock(), vue.createBlock(_sfc_main$J, {
29759
+ showFiltersCloseButton.value && vue.unref(isFilterSidebarVisible) ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
29484
29760
  key: 5,
29485
29761
  label: optionsValue.value.labels.mobileFilterCloseButton
29486
29762
  }, null, 8, ["label"])) : vue.createCommentVNode("", true)
@@ -29489,7 +29765,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29489
29765
  };
29490
29766
  }
29491
29767
  });
29492
- const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
29768
+ const _sfc_main$G = /* @__PURE__ */ vue.defineComponent({
29493
29769
  __name: "SearchResultsProductImage",
29494
29770
  props: {
29495
29771
  item: {},
@@ -29497,7 +29773,7 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
29497
29773
  },
29498
29774
  setup(__props) {
29499
29775
  return (_ctx, _cache) => {
29500
- return vue.openBlock(), vue.createBlock(_sfc_main$1q, {
29776
+ return vue.openBlock(), vue.createBlock(_sfc_main$1w, {
29501
29777
  item: _ctx.item,
29502
29778
  options: _ctx.options,
29503
29779
  "wrapper-class": "lupa-search-results-image-wrapper",
@@ -29506,16 +29782,16 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
29506
29782
  };
29507
29783
  }
29508
29784
  });
29509
- const _hoisted_1$z = ["title", "innerHTML"];
29510
- const _hoisted_2$q = ["title"];
29511
- const _hoisted_3$i = ["href", "innerHTML"];
29512
- const _hoisted_4$b = ["title"];
29513
- const _hoisted_5$7 = {
29785
+ const _hoisted_1$B = ["title", "innerHTML"];
29786
+ const _hoisted_2$s = ["title"];
29787
+ const _hoisted_3$k = ["href", "innerHTML"];
29788
+ const _hoisted_4$d = ["title"];
29789
+ const _hoisted_5$8 = {
29514
29790
  key: 0,
29515
29791
  class: "lupa-search-results-product-title-text"
29516
29792
  };
29517
29793
  const _hoisted_6$3 = ["href"];
29518
- const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
29794
+ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29519
29795
  __name: "SearchResultsProductTitle",
29520
29796
  props: {
29521
29797
  item: {},
@@ -29552,7 +29828,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
29552
29828
  style: vue.normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
29553
29829
  title: sanitizedTitle.value,
29554
29830
  innerHTML: sanitizedTitle.value
29555
- }, null, 12, _hoisted_1$z)) : isHtml.value && _ctx.options.link ? (vue.openBlock(), vue.createElementBlock("div", {
29831
+ }, null, 12, _hoisted_1$B)) : isHtml.value && _ctx.options.link ? (vue.openBlock(), vue.createElementBlock("div", {
29556
29832
  key: 1,
29557
29833
  class: "lupa-search-results-product-title",
29558
29834
  style: vue.normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
@@ -29563,26 +29839,26 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
29563
29839
  class: "lupa-search-results-product-title-text lupa-title-link",
29564
29840
  innerHTML: sanitizedTitle.value,
29565
29841
  onClick: handleNavigation
29566
- }, null, 8, _hoisted_3$i)
29567
- ], 12, _hoisted_2$q)) : (vue.openBlock(), vue.createElementBlock("div", {
29842
+ }, null, 8, _hoisted_3$k)
29843
+ ], 12, _hoisted_2$s)) : (vue.openBlock(), vue.createElementBlock("div", {
29568
29844
  key: 2,
29569
29845
  class: "lupa-search-results-product-title",
29570
29846
  style: vue.normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
29571
29847
  title: title.value
29572
29848
  }, [
29573
- !_ctx.options.link ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$7, vue.toDisplayString(title.value), 1)) : vue.createCommentVNode("", true),
29849
+ !_ctx.options.link ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$8, vue.toDisplayString(title.value), 1)) : vue.createCommentVNode("", true),
29574
29850
  _ctx.options.link ? (vue.openBlock(), vue.createElementBlock("a", {
29575
29851
  key: 1,
29576
29852
  href: _ctx.link,
29577
29853
  class: "lupa-search-results-product-title-text lupa-title-link",
29578
29854
  onClick: handleNavigation
29579
29855
  }, vue.toDisplayString(title.value), 9, _hoisted_6$3)) : vue.createCommentVNode("", true)
29580
- ], 12, _hoisted_4$b));
29856
+ ], 12, _hoisted_4$d));
29581
29857
  };
29582
29858
  }
29583
29859
  });
29584
- const _hoisted_1$y = ["innerHTML"];
29585
- const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
29860
+ const _hoisted_1$A = ["innerHTML"];
29861
+ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
29586
29862
  __name: "SearchResultsProductDescription",
29587
29863
  props: {
29588
29864
  item: {},
@@ -29609,7 +29885,7 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
29609
29885
  class: "lupa-search-results-product-description",
29610
29886
  style: vue.normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
29611
29887
  innerHTML: sanitizedDescription.value
29612
- }, null, 12, _hoisted_1$y)) : (vue.openBlock(), vue.createElementBlock("div", {
29888
+ }, null, 12, _hoisted_1$A)) : (vue.openBlock(), vue.createElementBlock("div", {
29613
29889
  key: 1,
29614
29890
  class: "lupa-search-results-product-description",
29615
29891
  style: vue.normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`)
@@ -29617,15 +29893,15 @@ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
29617
29893
  };
29618
29894
  }
29619
29895
  });
29620
- const _hoisted_1$x = { id: "lupa-search-results-rating" };
29621
- const _hoisted_2$p = { class: "lupa-ratings" };
29622
- const _hoisted_3$h = { class: "lupa-ratings-base" };
29623
- const _hoisted_4$a = ["innerHTML"];
29624
- const _hoisted_5$6 = { class: "lupa-rating-wrapper" };
29896
+ const _hoisted_1$z = { id: "lupa-search-results-rating" };
29897
+ const _hoisted_2$r = { class: "lupa-ratings" };
29898
+ const _hoisted_3$j = { class: "lupa-ratings-base" };
29899
+ const _hoisted_4$c = ["innerHTML"];
29900
+ const _hoisted_5$7 = { class: "lupa-rating-wrapper" };
29625
29901
  const _hoisted_6$2 = ["innerHTML"];
29626
29902
  const _hoisted_7$1 = ["href"];
29627
29903
  const STAR_COUNT = 5;
29628
- const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
29904
+ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
29629
29905
  __name: "SearchResultsProductRating",
29630
29906
  props: {
29631
29907
  item: {},
@@ -29662,18 +29938,18 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
29662
29938
  return generateLink(props.options.links.ratingDetails, props.item);
29663
29939
  });
29664
29940
  return (_ctx, _cache) => {
29665
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
29666
- vue.createElementVNode("div", _hoisted_2$p, [
29667
- vue.createElementVNode("div", _hoisted_3$h, [
29941
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$z, [
29942
+ vue.createElementVNode("div", _hoisted_2$r, [
29943
+ vue.createElementVNode("div", _hoisted_3$j, [
29668
29944
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(baseStars.value, (star, index) => {
29669
29945
  return vue.openBlock(), vue.createElementBlock("div", {
29670
29946
  key: index,
29671
29947
  innerHTML: star,
29672
29948
  class: "lupa-rating lupa-rating-not-highlighted"
29673
- }, null, 8, _hoisted_4$a);
29949
+ }, null, 8, _hoisted_4$c);
29674
29950
  }), 128))
29675
29951
  ]),
29676
- vue.createElementVNode("div", _hoisted_5$6, [
29952
+ vue.createElementVNode("div", _hoisted_5$7, [
29677
29953
  vue.createElementVNode("div", {
29678
29954
  class: "lupa-ratings-highlighted",
29679
29955
  style: vue.normalizeStyle({ width: ratingPercentage.value + "%" })
@@ -29696,11 +29972,11 @@ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
29696
29972
  };
29697
29973
  }
29698
29974
  });
29699
- const _hoisted_1$w = {
29975
+ const _hoisted_1$y = {
29700
29976
  class: "lupa-search-results-product-regular-price",
29701
29977
  "data-cy": "lupa-search-results-product-regular-price"
29702
29978
  };
29703
- const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
29979
+ const _sfc_main$C = /* @__PURE__ */ vue.defineComponent({
29704
29980
  __name: "SearchResultsProductRegularPrice",
29705
29981
  props: {
29706
29982
  item: {},
@@ -29722,11 +29998,11 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
29722
29998
  );
29723
29999
  });
29724
30000
  return (_ctx, _cache) => {
29725
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$w, vue.toDisplayString(price.value), 1);
30001
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$y, vue.toDisplayString(price.value), 1);
29726
30002
  };
29727
30003
  }
29728
30004
  });
29729
- const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
30005
+ const _sfc_main$B = /* @__PURE__ */ vue.defineComponent({
29730
30006
  __name: "SearchResultsProductPrice",
29731
30007
  props: {
29732
30008
  item: {},
@@ -29760,12 +30036,12 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
29760
30036
  };
29761
30037
  }
29762
30038
  });
29763
- const _hoisted_1$v = { class: "lupa-search-results-add-to-cart-wrapper" };
29764
- const _hoisted_2$o = { class: "lupa-search-results-product-addtocart" };
29765
- const _hoisted_3$g = ["disabled"];
29766
- const _hoisted_4$9 = ["href"];
29767
- const _hoisted_5$5 = ["id", "disabled"];
29768
- const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
30039
+ const _hoisted_1$x = { class: "lupa-search-results-add-to-cart-wrapper" };
30040
+ const _hoisted_2$q = { class: "lupa-search-results-product-addtocart" };
30041
+ const _hoisted_3$i = ["disabled"];
30042
+ const _hoisted_4$b = ["href"];
30043
+ const _hoisted_5$6 = ["id", "disabled"];
30044
+ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
29769
30045
  __name: "SearchResultsProductAddToCart",
29770
30046
  props: {
29771
30047
  item: {},
@@ -29824,16 +30100,16 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
29824
30100
  loading.value = false;
29825
30101
  });
29826
30102
  return (_ctx, _cache) => {
29827
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
29828
- vue.createElementVNode("div", _hoisted_2$o, [
30103
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$x, [
30104
+ vue.createElementVNode("div", _hoisted_2$q, [
29829
30105
  hasLink.value ? (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
29830
30106
  key: 0,
29831
30107
  class: addToCartButtonClass.value,
29832
30108
  "data-cy": "lupa-add-to-cart",
29833
30109
  disabled: !inStockValue.value || loading.value
29834
30110
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
29835
- vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$9)
29836
- ], 16, _hoisted_3$g)) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
30111
+ vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$b)
30112
+ ], 16, _hoisted_3$i)) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
29837
30113
  key: 1,
29838
30114
  id: id.value,
29839
30115
  class: addToCartButtonClass.value,
@@ -29841,18 +30117,18 @@ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
29841
30117
  disabled: !inStockValue.value || loading.value
29842
30118
  }, _ctx.dynamicAttributes, {
29843
30119
  onClick: vue.withModifiers(handleClick, ["stop"])
29844
- }), vue.toDisplayString(label.value), 17, _hoisted_5$5))
30120
+ }), vue.toDisplayString(label.value), 17, _hoisted_5$6))
29845
30121
  ])
29846
30122
  ]);
29847
30123
  };
29848
30124
  }
29849
30125
  });
29850
- const _hoisted_1$u = ["innerHTML"];
29851
- const _hoisted_2$n = { key: 0 };
29852
- const _hoisted_3$f = { key: 1 };
29853
- const _hoisted_4$8 = { class: "lupa-search-box-custom-label" };
29854
- const _hoisted_5$4 = { class: "lupa-search-box-custom-text" };
29855
- const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
30126
+ const _hoisted_1$w = ["innerHTML"];
30127
+ const _hoisted_2$p = { key: 0 };
30128
+ const _hoisted_3$h = { key: 1 };
30129
+ const _hoisted_4$a = { class: "lupa-search-box-custom-label" };
30130
+ const _hoisted_5$5 = { class: "lupa-search-box-custom-text" };
30131
+ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
29856
30132
  __name: "SearchResultsProductCustom",
29857
30133
  props: {
29858
30134
  item: {},
@@ -29894,20 +30170,20 @@ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
29894
30170
  key: 0,
29895
30171
  class: className.value,
29896
30172
  innerHTML: text.value
29897
- }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$u)) : (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
30173
+ }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$w)) : (vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
29898
30174
  key: 1,
29899
30175
  class: className.value
29900
30176
  }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
29901
- !label.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, vue.toDisplayString(text.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$f, [
29902
- vue.createElementVNode("div", _hoisted_4$8, vue.toDisplayString(label.value), 1),
29903
- vue.createElementVNode("div", _hoisted_5$4, vue.toDisplayString(text.value), 1)
30177
+ !label.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$p, vue.toDisplayString(text.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$h, [
30178
+ vue.createElementVNode("div", _hoisted_4$a, vue.toDisplayString(label.value), 1),
30179
+ vue.createElementVNode("div", _hoisted_5$5, vue.toDisplayString(text.value), 1)
29904
30180
  ]))
29905
30181
  ], 16));
29906
30182
  };
29907
30183
  }
29908
30184
  });
29909
- const _hoisted_1$t = ["innerHTML"];
29910
- const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
30185
+ const _hoisted_1$v = ["innerHTML"];
30186
+ const _sfc_main$y = /* @__PURE__ */ vue.defineComponent({
29911
30187
  __name: "SearchResultsProductCustomHtmlElement",
29912
30188
  props: {
29913
30189
  item: {},
@@ -29943,15 +30219,15 @@ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent({
29943
30219
  return vue.openBlock(), vue.createElementBlock("div", vue.mergeProps({
29944
30220
  class: className.value,
29945
30221
  innerHTML: text.value
29946
- }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$t);
30222
+ }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), null, 16, _hoisted_1$v);
29947
30223
  };
29948
30224
  }
29949
30225
  });
29950
- const _hoisted_1$s = { id: "lupa-search-results-rating" };
29951
- const _hoisted_2$m = ["innerHTML"];
29952
- const _hoisted_3$e = { class: "lupa-ratings" };
29953
- const _hoisted_4$7 = ["href"];
29954
- const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
30226
+ const _hoisted_1$u = { id: "lupa-search-results-rating" };
30227
+ const _hoisted_2$o = ["innerHTML"];
30228
+ const _hoisted_3$g = { class: "lupa-ratings" };
30229
+ const _hoisted_4$9 = ["href"];
30230
+ const _sfc_main$x = /* @__PURE__ */ vue.defineComponent({
29955
30231
  __name: "SearchResultsProductSingleStarRating",
29956
30232
  props: {
29957
30233
  item: {},
@@ -29979,35 +30255,35 @@ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
29979
30255
  return RATING_STAR_HTML;
29980
30256
  });
29981
30257
  return (_ctx, _cache) => {
29982
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
30258
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$u, [
29983
30259
  vue.createElementVNode("div", {
29984
30260
  innerHTML: star.value,
29985
30261
  class: "lupa-rating lupa-rating-highlighted"
29986
- }, null, 8, _hoisted_2$m),
29987
- vue.createElementVNode("div", _hoisted_3$e, vue.toDisplayString(rating.value), 1),
30262
+ }, null, 8, _hoisted_2$o),
30263
+ vue.createElementVNode("div", _hoisted_3$g, vue.toDisplayString(rating.value), 1),
29988
30264
  vue.createElementVNode("a", {
29989
30265
  href: ratingLink.value,
29990
30266
  class: "lupa-total-ratings"
29991
- }, vue.toDisplayString(totalRatings.value), 9, _hoisted_4$7)
30267
+ }, vue.toDisplayString(totalRatings.value), 9, _hoisted_4$9)
29992
30268
  ]);
29993
30269
  };
29994
30270
  }
29995
30271
  });
29996
30272
  const __default__ = {
29997
30273
  components: {
29998
- SearchResultsProductImage: _sfc_main$E,
29999
- SearchResultsProductTitle: _sfc_main$D,
30000
- SearchResultsProductDescription: _sfc_main$C,
30001
- SearchResultsProductRating: _sfc_main$B,
30002
- SearchResultsProductRegularPrice: _sfc_main$A,
30003
- SearchResultsProductPrice: _sfc_main$z,
30004
- SearchResultsProductAddToCart: _sfc_main$y,
30005
- SearchResultsProductCustom: _sfc_main$x,
30006
- SearchResultsProductCustomHtmlElement: _sfc_main$w,
30007
- SearchResultsProductSingleStarRating: _sfc_main$v
30008
- }
30009
- };
30010
- const _sfc_main$u = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__), {
30274
+ SearchResultsProductImage: _sfc_main$G,
30275
+ SearchResultsProductTitle: _sfc_main$F,
30276
+ SearchResultsProductDescription: _sfc_main$E,
30277
+ SearchResultsProductRating: _sfc_main$D,
30278
+ SearchResultsProductRegularPrice: _sfc_main$C,
30279
+ SearchResultsProductPrice: _sfc_main$B,
30280
+ SearchResultsProductAddToCart: _sfc_main$A,
30281
+ SearchResultsProductCustom: _sfc_main$z,
30282
+ SearchResultsProductCustomHtmlElement: _sfc_main$y,
30283
+ SearchResultsProductSingleStarRating: _sfc_main$x
30284
+ }
30285
+ };
30286
+ const _sfc_main$w = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValues({}, __default__), {
30011
30287
  __name: "SearchResultsProductCardElement",
30012
30288
  props: {
30013
30289
  item: {},
@@ -30085,13 +30361,13 @@ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadVa
30085
30361
  };
30086
30362
  }
30087
30363
  }));
30088
- const _hoisted_1$r = ["href"];
30089
- const _hoisted_2$l = {
30364
+ const _hoisted_1$t = ["href"];
30365
+ const _hoisted_2$n = {
30090
30366
  key: 0,
30091
30367
  class: "lupa-out-of-stock"
30092
30368
  };
30093
- const _hoisted_3$d = { class: "lupa-search-result-product-details-section" };
30094
- const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30369
+ const _hoisted_3$f = { class: "lupa-search-result-product-details-section" };
30370
+ const _sfc_main$v = /* @__PURE__ */ vue.defineComponent({
30095
30371
  __name: "SearchResultsProductCard",
30096
30372
  props: {
30097
30373
  product: {},
@@ -30267,7 +30543,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30267
30543
  default: vue.withCtx(() => {
30268
30544
  var _a25;
30269
30545
  return [
30270
- vue.createVNode(_sfc_main$1a, { options: badgesOptions.value }, null, 8, ["options"]),
30546
+ vue.createVNode(_sfc_main$1g, { options: badgesOptions.value }, null, 8, ["options"]),
30271
30547
  vue.createElementVNode("div", {
30272
30548
  class: vue.normalizeClass(["lupa-search-result-product-contents", listLayoutClass.value])
30273
30549
  }, [
@@ -30277,7 +30553,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30277
30553
  onClick: handleNavigation
30278
30554
  }, [
30279
30555
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(imageElements.value, (element) => {
30280
- return vue.openBlock(), vue.createBlock(_sfc_main$u, {
30556
+ return vue.openBlock(), vue.createBlock(_sfc_main$w, {
30281
30557
  class: "lupa-search-results-product-element",
30282
30558
  item: _ctx.product,
30283
30559
  element,
@@ -30288,16 +30564,16 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30288
30564
  onProductEvent: handleProductEvent
30289
30565
  }, null, 8, ["item", "element", "labels", "inStock", "link"]);
30290
30566
  }), 128)),
30291
- vue.createVNode(_sfc_main$1a, {
30567
+ vue.createVNode(_sfc_main$1g, {
30292
30568
  options: badgesOptions.value,
30293
30569
  position: "image",
30294
30570
  class: "lupa-image-badges"
30295
30571
  }, null, 8, ["options"]),
30296
- ((_a25 = labels.value) == null ? void 0 : _a25.outOfStock) && !isInStock.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$l, vue.toDisplayString(labels.value.outOfStock), 1)) : vue.createCommentVNode("", true)
30297
- ], 8, _hoisted_1$r),
30298
- vue.createElementVNode("div", _hoisted_3$d, [
30572
+ ((_a25 = labels.value) == null ? void 0 : _a25.outOfStock) && !isInStock.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$n, vue.toDisplayString(labels.value.outOfStock), 1)) : vue.createCommentVNode("", true)
30573
+ ], 8, _hoisted_1$t),
30574
+ vue.createElementVNode("div", _hoisted_3$f, [
30299
30575
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(detailElements.value, (element) => {
30300
- return vue.openBlock(), vue.createBlock(_sfc_main$u, {
30576
+ return vue.openBlock(), vue.createBlock(_sfc_main$w, {
30301
30577
  class: "lupa-search-results-product-element",
30302
30578
  item: _ctx.product,
30303
30579
  element,
@@ -30315,7 +30591,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30315
30591
  class: vue.normalizeClass("lupa-element-group-" + group)
30316
30592
  }, [
30317
30593
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(getGroupElements(group), (element) => {
30318
- return vue.openBlock(), vue.createBlock(_sfc_main$u, {
30594
+ return vue.openBlock(), vue.createBlock(_sfc_main$w, {
30319
30595
  class: "lupa-search-results-product-element",
30320
30596
  item: _ctx.product,
30321
30597
  element,
@@ -30336,23 +30612,23 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30336
30612
  };
30337
30613
  }
30338
30614
  });
30339
- const _hoisted_1$q = {
30615
+ const _hoisted_1$s = {
30340
30616
  id: "lupa-search-results-similar-queries",
30341
30617
  "data-cy": "lupa-search-results-similar-queries"
30342
30618
  };
30343
- const _hoisted_2$k = { class: "lupa-similar-queries-label" };
30344
- const _hoisted_3$c = {
30619
+ const _hoisted_2$m = { class: "lupa-similar-queries-label" };
30620
+ const _hoisted_3$e = {
30345
30621
  class: "lupa-similar-query-label",
30346
30622
  "data-cy": "lupa-similar-query-label"
30347
30623
  };
30348
- const _hoisted_4$6 = ["onClick"];
30349
- const _hoisted_5$3 = ["innerHTML"];
30624
+ const _hoisted_4$8 = ["onClick"];
30625
+ const _hoisted_5$4 = ["innerHTML"];
30350
30626
  const _hoisted_6$1 = { key: 0 };
30351
30627
  const _hoisted_7 = {
30352
30628
  class: "lupa-products",
30353
30629
  "data-cy": "lupa-products"
30354
30630
  };
30355
- const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
30631
+ const _sfc_main$u = /* @__PURE__ */ vue.defineComponent({
30356
30632
  __name: "SearchResultsSimilarQueries",
30357
30633
  props: {
30358
30634
  labels: {},
@@ -30390,11 +30666,11 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
30390
30666
  };
30391
30667
  };
30392
30668
  return (_ctx, _cache) => {
30393
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
30394
- vue.createElementVNode("div", _hoisted_2$k, vue.toDisplayString(_ctx.labels.similarQueries), 1),
30669
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$s, [
30670
+ vue.createElementVNode("div", _hoisted_2$m, vue.toDisplayString(_ctx.labels.similarQueries), 1),
30395
30671
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(similarQueries.value, (similarQuery, index) => {
30396
30672
  return vue.openBlock(), vue.createElementBlock("div", { key: index }, [
30397
- vue.createElementVNode("div", _hoisted_3$c, [
30673
+ vue.createElementVNode("div", _hoisted_3$e, [
30398
30674
  vue.createElementVNode("span", null, vue.toDisplayString(similarQueryLabel.value), 1),
30399
30675
  vue.createElementVNode("span", {
30400
30676
  id: "lupa-similar-query-text-component",
@@ -30404,13 +30680,13 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
30404
30680
  }, [
30405
30681
  vue.createElementVNode("span", {
30406
30682
  innerHTML: getSimilarQueryContent(similarQuery.displayQuery)
30407
- }, null, 8, _hoisted_5$3),
30683
+ }, null, 8, _hoisted_5$4),
30408
30684
  similarQuery.count ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_6$1, " (" + vue.toDisplayString(similarQuery.count) + ")", 1)) : vue.createCommentVNode("", true)
30409
- ], 8, _hoisted_4$6)
30685
+ ], 8, _hoisted_4$8)
30410
30686
  ]),
30411
30687
  vue.createElementVNode("div", _hoisted_7, [
30412
30688
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(similarQuery.items, (product, index2) => {
30413
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
30689
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
30414
30690
  style: vue.normalizeStyle(_ctx.columnSize),
30415
30691
  key: getDocumentKey(index2, product),
30416
30692
  product,
@@ -30425,15 +30701,15 @@ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
30425
30701
  };
30426
30702
  }
30427
30703
  });
30428
- const _hoisted_1$p = {
30704
+ const _hoisted_1$r = {
30429
30705
  key: 0,
30430
30706
  class: "lupa-results-additional-panel"
30431
30707
  };
30432
- const _hoisted_2$j = {
30708
+ const _hoisted_2$l = {
30433
30709
  class: "lupa-results-additional-panel-items",
30434
30710
  "data-cy": "lupa-results-additional-panel-items"
30435
30711
  };
30436
- const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
30712
+ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
30437
30713
  __name: "AdditionalPanel",
30438
30714
  props: {
30439
30715
  panel: {},
@@ -30506,10 +30782,10 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
30506
30782
  handleQueryChange();
30507
30783
  });
30508
30784
  return (_ctx, _cache) => {
30509
- return hasResults.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
30510
- vue.createElementVNode("div", _hoisted_2$j, [
30785
+ return hasResults.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$r, [
30786
+ vue.createElementVNode("div", _hoisted_2$l, [
30511
30787
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(visibleItems.value, (item, index) => {
30512
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
30788
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
30513
30789
  key: index,
30514
30790
  product: item,
30515
30791
  options: _ctx.panel,
@@ -30527,11 +30803,11 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
30527
30803
  };
30528
30804
  }
30529
30805
  });
30530
- const _hoisted_1$o = {
30806
+ const _hoisted_1$q = {
30531
30807
  key: 0,
30532
30808
  class: "lupa-results-additional-panels"
30533
30809
  };
30534
- const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
30810
+ const _sfc_main$s = /* @__PURE__ */ vue.defineComponent({
30535
30811
  __name: "AdditionalPanels",
30536
30812
  props: {
30537
30813
  options: {},
@@ -30548,9 +30824,9 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
30548
30824
  return locationPanels.value.length > 0;
30549
30825
  });
30550
30826
  return (_ctx, _cache) => {
30551
- return isVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
30827
+ return isVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$q, [
30552
30828
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(locationPanels.value, (panel) => {
30553
- return vue.openBlock(), vue.createBlock(_sfc_main$r, {
30829
+ return vue.openBlock(), vue.createBlock(_sfc_main$t, {
30554
30830
  key: panel.queryKey,
30555
30831
  panel,
30556
30832
  options: _ctx.sdkOptions
@@ -30567,29 +30843,29 @@ const _export_sfc = (sfc, props) => {
30567
30843
  }
30568
30844
  return target2;
30569
30845
  };
30570
- const _sfc_main$p = {};
30571
- const _hoisted_1$n = { class: "lupa-spinner-wrapper" };
30572
- const _hoisted_2$i = { class: "lupa-spinner" };
30846
+ const _sfc_main$r = {};
30847
+ const _hoisted_1$p = { class: "lupa-spinner-wrapper" };
30848
+ const _hoisted_2$k = { class: "lupa-spinner" };
30573
30849
  function _sfc_render(_ctx, _cache) {
30574
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
30575
- vue.createElementVNode("div", _hoisted_2$i, [
30850
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
30851
+ vue.createElementVNode("div", _hoisted_2$k, [
30576
30852
  (vue.openBlock(), vue.createElementBlock(vue.Fragment, null, vue.renderList(12, (x) => {
30577
30853
  return vue.createElementVNode("div", { key: x });
30578
30854
  }), 64))
30579
30855
  ])
30580
30856
  ]);
30581
30857
  }
30582
- const Spinner = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["render", _sfc_render]]);
30583
- const _hoisted_1$m = {
30858
+ const Spinner = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render]]);
30859
+ const _hoisted_1$o = {
30584
30860
  id: "lupa-search-results-similar-results",
30585
30861
  "data-cy": "lupa-search-results-similar-results"
30586
30862
  };
30587
- const _hoisted_2$h = { class: "lupa-similar-results-label" };
30588
- const _hoisted_3$b = {
30863
+ const _hoisted_2$j = { class: "lupa-similar-results-label" };
30864
+ const _hoisted_3$d = {
30589
30865
  class: "lupa-products",
30590
30866
  "data-cy": "lupa-products"
30591
30867
  };
30592
- const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
30868
+ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
30593
30869
  __name: "SearchResultsSimilarResults",
30594
30870
  props: {
30595
30871
  columnSize: {},
@@ -30610,11 +30886,11 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
30610
30886
  };
30611
30887
  });
30612
30888
  return (_ctx, _cache) => {
30613
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
30614
- vue.createElementVNode("div", _hoisted_2$h, vue.toDisplayString(_ctx.labels.similarResultsLabel), 1),
30615
- vue.createElementVNode("div", _hoisted_3$b, [
30889
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$o, [
30890
+ vue.createElementVNode("div", _hoisted_2$j, vue.toDisplayString(_ctx.labels.similarResultsLabel), 1),
30891
+ vue.createElementVNode("div", _hoisted_3$d, [
30616
30892
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(similarResults.value.items, (product, index) => {
30617
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
30893
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
30618
30894
  style: vue.normalizeStyle(_ctx.columnSize),
30619
30895
  key: getDocumentKey(index, product),
30620
30896
  product,
@@ -30735,15 +31011,15 @@ const extractRelatedSource = (source, searchResults, options, activeFilters) =>
30735
31011
  return extractFacetsRelatedSource(source, searchResults, options, activeFilters);
30736
31012
  }
30737
31013
  });
30738
- const _hoisted_1$l = { class: "lupa-related-query-item" };
30739
- const _hoisted_2$g = { class: "lupa-related-query-image" };
30740
- const _hoisted_3$a = { class: "lupa-related-query-label" };
30741
- const _hoisted_4$5 = { class: "lupa-related-query-title" };
30742
- const _hoisted_5$2 = {
31014
+ const _hoisted_1$n = { class: "lupa-related-query-item" };
31015
+ const _hoisted_2$i = { class: "lupa-related-query-image" };
31016
+ const _hoisted_3$c = { class: "lupa-related-query-label" };
31017
+ const _hoisted_4$7 = { class: "lupa-related-query-title" };
31018
+ const _hoisted_5$3 = {
30743
31019
  key: 0,
30744
31020
  class: "lupa-related-query-count"
30745
31021
  };
30746
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
31022
+ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
30747
31023
  __name: "RelatedQueryPanel",
30748
31024
  props: {
30749
31025
  query: {},
@@ -30839,9 +31115,9 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
30839
31115
  });
30840
31116
  return (_ctx, _cache) => {
30841
31117
  var _a25;
30842
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
30843
- vue.createElementVNode("div", _hoisted_2$g, [
30844
- itemToDisplay.value && image.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1q, {
31118
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
31119
+ vue.createElementVNode("div", _hoisted_2$i, [
31120
+ itemToDisplay.value && image.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1w, {
30845
31121
  key: 0,
30846
31122
  "wrapper-class": "lupa-related-query-image-wrapper",
30847
31123
  "image-class": "lupa-related-query-image",
@@ -30849,24 +31125,24 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
30849
31125
  options: image.value
30850
31126
  }, null, 8, ["item", "options"])) : vue.createCommentVNode("", true)
30851
31127
  ]),
30852
- vue.createElementVNode("div", _hoisted_3$a, [
30853
- vue.createElementVNode("span", _hoisted_4$5, vue.toDisplayString(_ctx.query), 1),
30854
- ((_a25 = _ctx.options) == null ? void 0 : _a25.showCount) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$2, "(" + vue.toDisplayString(totalItemCount.value) + ")", 1)) : vue.createCommentVNode("", true)
31128
+ vue.createElementVNode("div", _hoisted_3$c, [
31129
+ vue.createElementVNode("span", _hoisted_4$7, vue.toDisplayString(_ctx.query), 1),
31130
+ ((_a25 = _ctx.options) == null ? void 0 : _a25.showCount) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$3, "(" + vue.toDisplayString(totalItemCount.value) + ")", 1)) : vue.createCommentVNode("", true)
30855
31131
  ])
30856
31132
  ]);
30857
31133
  };
30858
31134
  }
30859
31135
  });
30860
- const _hoisted_1$k = {
31136
+ const _hoisted_1$m = {
30861
31137
  key: 0,
30862
31138
  class: "lupa-related-queries"
30863
31139
  };
30864
- const _hoisted_2$f = {
31140
+ const _hoisted_2$h = {
30865
31141
  key: 0,
30866
31142
  class: "lupa-related-queries-title"
30867
31143
  };
30868
- const _hoisted_3$9 = ["onClick"];
30869
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
31144
+ const _hoisted_3$b = ["onClick"];
31145
+ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
30870
31146
  __name: "RelatedQueries",
30871
31147
  props: {
30872
31148
  options: {}
@@ -30960,8 +31236,8 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
30960
31236
  };
30961
31237
  return (_ctx, _cache) => {
30962
31238
  var _a25, _b25, _c, _d;
30963
- return _ctx.options && hasEnoughRelatedQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
30964
- ((_b25 = (_a25 = _ctx.options) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.title) ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_2$f, vue.toDisplayString((_d = (_c = _ctx.options) == null ? void 0 : _c.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
31239
+ return _ctx.options && hasEnoughRelatedQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$m, [
31240
+ ((_b25 = (_a25 = _ctx.options) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.title) ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_2$h, vue.toDisplayString((_d = (_c = _ctx.options) == null ? void 0 : _c.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
30965
31241
  vue.createElementVNode("ul", null, [
30966
31242
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(relatedQueries2.value, (query) => {
30967
31243
  return vue.withDirectives((vue.openBlock(), vue.createElementBlock("li", {
@@ -30971,14 +31247,14 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
30971
31247
  vue.createElementVNode("a", {
30972
31248
  onClick: ($event) => handleRelatedQueryClick(query)
30973
31249
  }, [
30974
- vue.createVNode(_sfc_main$n, {
31250
+ vue.createVNode(_sfc_main$p, {
30975
31251
  "source-key": query.key,
30976
31252
  options: _ctx.options,
30977
31253
  query: query.value,
30978
31254
  "existing-items-from-other-queries": allDisplayItems.value,
30979
31255
  onLoaded: (item) => processLoadedItem(query, item)
30980
31256
  }, null, 8, ["source-key", "options", "query", "existing-items-from-other-queries", "onLoaded"])
30981
- ], 8, _hoisted_3$9)
31257
+ ], 8, _hoisted_3$b)
30982
31258
  ], 2)), [
30983
31259
  [vue.vShow, querySourceResultMap.value[query.value] !== false]
30984
31260
  ]);
@@ -31015,13 +31291,13 @@ const extractRedirectionSuggestion = (searchText = "", options) => {
31015
31291
  }
31016
31292
  return null;
31017
31293
  };
31018
- const _hoisted_1$j = {
31294
+ const _hoisted_1$l = {
31019
31295
  key: 0,
31020
31296
  class: "lupa-redirection-suggestion"
31021
31297
  };
31022
- const _hoisted_2$e = { class: "lupa-redirections-suggestion-label" };
31023
- const _hoisted_3$8 = ["href"];
31024
- const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
31298
+ const _hoisted_2$g = { class: "lupa-redirections-suggestion-label" };
31299
+ const _hoisted_3$a = ["href"];
31300
+ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
31025
31301
  __name: "RedirectionSuggestions",
31026
31302
  props: {
31027
31303
  options: {}
@@ -31044,19 +31320,19 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
31044
31320
  )
31045
31321
  );
31046
31322
  return (_ctx, _cache) => {
31047
- return redirectionSuggestion.value && label.value && link.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
31048
- vue.createElementVNode("h4", _hoisted_2$e, [
31049
- vue.createElementVNode("a", { href: link.value }, vue.toDisplayString(label.value), 9, _hoisted_3$8)
31323
+ return redirectionSuggestion.value && label.value && link.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$l, [
31324
+ vue.createElementVNode("h4", _hoisted_2$g, [
31325
+ vue.createElementVNode("a", { href: link.value }, vue.toDisplayString(label.value), 9, _hoisted_3$a)
31050
31326
  ])
31051
31327
  ])) : vue.createCommentVNode("", true);
31052
31328
  };
31053
31329
  }
31054
31330
  });
31055
- const _hoisted_1$i = {
31331
+ const _hoisted_1$k = {
31056
31332
  key: 0,
31057
31333
  class: "lupa-refiners-loading-notice"
31058
31334
  };
31059
- const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
31335
+ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
31060
31336
  __name: "RefinersLoadingNotice",
31061
31337
  props: {
31062
31338
  labels: {}
@@ -31067,22 +31343,22 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
31067
31343
  const props = __props;
31068
31344
  const label = vue.computed(() => props.labels.refinersLoadingNotice);
31069
31345
  return (_ctx, _cache) => {
31070
- return label.value && vue.unref(loadingRefiners) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
31346
+ return label.value && vue.unref(loadingRefiners) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$k, [
31071
31347
  vue.createElementVNode("p", null, vue.toDisplayString(label.value), 1),
31072
31348
  vue.createVNode(Spinner)
31073
31349
  ])) : vue.createCommentVNode("", true);
31074
31350
  };
31075
31351
  }
31076
31352
  });
31077
- const _hoisted_1$h = { class: "lupa-related-query-item" };
31078
- const _hoisted_2$d = { class: "lupa-related-query-image" };
31079
- const _hoisted_3$7 = { class: "lupa-related-query-label" };
31080
- const _hoisted_4$4 = { class: "lupa-related-query-title" };
31081
- const _hoisted_5$1 = {
31353
+ const _hoisted_1$j = { class: "lupa-related-query-item" };
31354
+ const _hoisted_2$f = { class: "lupa-related-query-image" };
31355
+ const _hoisted_3$9 = { class: "lupa-related-query-label" };
31356
+ const _hoisted_4$6 = { class: "lupa-related-query-title" };
31357
+ const _hoisted_5$2 = {
31082
31358
  key: 0,
31083
31359
  class: "lupa-related-query-count"
31084
31360
  };
31085
- const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
31361
+ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
31086
31362
  __name: "RelatedQueryPanelApi",
31087
31363
  props: {
31088
31364
  relatedQuery: {},
@@ -31114,9 +31390,9 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
31114
31390
  });
31115
31391
  return (_ctx, _cache) => {
31116
31392
  var _a25;
31117
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
31118
- vue.createElementVNode("div", _hoisted_2$d, [
31119
- itemToDisplay.value && image.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1q, {
31393
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
31394
+ vue.createElementVNode("div", _hoisted_2$f, [
31395
+ itemToDisplay.value && image.value ? (vue.openBlock(), vue.createBlock(_sfc_main$1w, {
31120
31396
  key: 0,
31121
31397
  "wrapper-class": "lupa-related-query-image-wrapper",
31122
31398
  "image-class": "lupa-related-query-image",
@@ -31124,24 +31400,24 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
31124
31400
  options: image.value
31125
31401
  }, null, 8, ["item", "options"])) : vue.createCommentVNode("", true)
31126
31402
  ]),
31127
- vue.createElementVNode("div", _hoisted_3$7, [
31128
- vue.createElementVNode("span", _hoisted_4$4, vue.toDisplayString(query.value), 1),
31129
- ((_a25 = _ctx.options) == null ? void 0 : _a25.showCount) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$1, "(" + vue.toDisplayString(totalItemCount.value) + ")", 1)) : vue.createCommentVNode("", true)
31403
+ vue.createElementVNode("div", _hoisted_3$9, [
31404
+ vue.createElementVNode("span", _hoisted_4$6, vue.toDisplayString(query.value), 1),
31405
+ ((_a25 = _ctx.options) == null ? void 0 : _a25.showCount) ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$2, "(" + vue.toDisplayString(totalItemCount.value) + ")", 1)) : vue.createCommentVNode("", true)
31130
31406
  ])
31131
31407
  ]);
31132
31408
  };
31133
31409
  }
31134
31410
  });
31135
- const _hoisted_1$g = {
31411
+ const _hoisted_1$i = {
31136
31412
  key: 0,
31137
31413
  class: "lupa-related-queries"
31138
31414
  };
31139
- const _hoisted_2$c = {
31415
+ const _hoisted_2$e = {
31140
31416
  key: 0,
31141
31417
  class: "lupa-related-queries-title"
31142
31418
  };
31143
- const _hoisted_3$6 = ["onClick"];
31144
- const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31419
+ const _hoisted_3$8 = ["onClick"];
31420
+ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
31145
31421
  __name: "RelatedQueriesApi",
31146
31422
  props: {
31147
31423
  options: {}
@@ -31151,7 +31427,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31151
31427
  const searchResultStore = useSearchResultStore();
31152
31428
  const paramsStore = useParamsStore();
31153
31429
  const optionsStore = useOptionsStore();
31154
- const { searchResult, relatedQueriesResult } = storeToRefs(searchResultStore);
31430
+ const { searchResult, relatedQueriesResult, relatedQueryFacetKeys } = storeToRefs(searchResultStore);
31155
31431
  const relatedQueries2 = vue.computed(() => {
31156
31432
  var _a25, _b25, _c, _d;
31157
31433
  const allQueries = (_b25 = (_a25 = relatedQueriesResult.value) == null ? void 0 : _a25.relatedQueries) != null ? _b25 : [];
@@ -31179,7 +31455,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31179
31455
  { key: query.key, value: query.value },
31180
31456
  optionsStore.getQueryParamName,
31181
31457
  {},
31182
- (_a25 = relatedQueries2.value) == null ? void 0 : _a25.map((q) => `f.${q.facetKey}`)
31458
+ (_a25 = relatedQueryFacetKeys.value) == null ? void 0 : _a25.map((key) => `f.${key}`)
31183
31459
  );
31184
31460
  };
31185
31461
  const getSelectedFilterClass = (relatedQuery) => {
@@ -31193,8 +31469,8 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31193
31469
  };
31194
31470
  return (_ctx, _cache) => {
31195
31471
  var _a25, _b25, _c, _d;
31196
- return hasEnoughRelatedQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
31197
- ((_b25 = (_a25 = _ctx.options) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.title) ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_2$c, vue.toDisplayString((_d = (_c = _ctx.options) == null ? void 0 : _c.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
31472
+ return hasEnoughRelatedQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
31473
+ ((_b25 = (_a25 = _ctx.options) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.title) ? (vue.openBlock(), vue.createElementBlock("h3", _hoisted_2$e, vue.toDisplayString((_d = (_c = _ctx.options) == null ? void 0 : _c.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
31198
31474
  vue.createElementVNode("ul", null, [
31199
31475
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(relatedQueries2.value, (query) => {
31200
31476
  return vue.openBlock(), vue.createElementBlock("li", {
@@ -31204,11 +31480,11 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31204
31480
  vue.createElementVNode("a", {
31205
31481
  onClick: ($event) => handleRelatedQueryClick(query)
31206
31482
  }, [
31207
- vue.createVNode(_sfc_main$j, {
31483
+ vue.createVNode(_sfc_main$l, {
31208
31484
  relatedQuery: query,
31209
31485
  options: _ctx.options
31210
31486
  }, null, 8, ["relatedQuery", "options"])
31211
- ], 8, _hoisted_3$6)
31487
+ ], 8, _hoisted_3$8)
31212
31488
  ], 2);
31213
31489
  }), 128))
31214
31490
  ])
@@ -31216,9 +31492,9 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31216
31492
  };
31217
31493
  }
31218
31494
  });
31219
- const _hoisted_1$f = { key: 0 };
31220
- const _hoisted_2$b = ["innerHTML"];
31221
- const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
31495
+ const _hoisted_1$h = { key: 0 };
31496
+ const _hoisted_2$d = ["innerHTML"];
31497
+ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
31222
31498
  __name: "ZeroResults",
31223
31499
  props: {
31224
31500
  emptyResultsLabel: {},
@@ -31247,36 +31523,36 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
31247
31523
  });
31248
31524
  return (_ctx, _cache) => {
31249
31525
  return vue.openBlock(), vue.createElementBlock(vue.Fragment, null, [
31250
- showDefaultZeroResultsTemplate.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
31526
+ showDefaultZeroResultsTemplate.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
31251
31527
  vue.createTextVNode(vue.toDisplayString(_ctx.emptyResultsLabel) + " ", 1),
31252
31528
  vue.createElementVNode("span", null, vue.toDisplayString(_ctx.currentQueryText), 1)
31253
31529
  ])) : vue.createCommentVNode("", true),
31254
31530
  showCustomZeroResultsTemplate.value ? (vue.openBlock(), vue.createElementBlock("div", {
31255
31531
  key: 1,
31256
31532
  innerHTML: htmlTemplate.value
31257
- }, null, 8, _hoisted_2$b)) : vue.createCommentVNode("", true)
31533
+ }, null, 8, _hoisted_2$d)) : vue.createCommentVNode("", true)
31258
31534
  ], 64);
31259
31535
  };
31260
31536
  }
31261
31537
  });
31262
- const _hoisted_1$e = { id: "lupa-search-results-products" };
31263
- const _hoisted_2$a = {
31538
+ const _hoisted_1$g = { id: "lupa-search-results-products" };
31539
+ const _hoisted_2$c = {
31264
31540
  class: "lupa-products",
31265
31541
  "data-cy": "lupa-products"
31266
31542
  };
31267
- const _hoisted_3$5 = {
31543
+ const _hoisted_3$7 = {
31268
31544
  key: 1,
31269
31545
  class: "lupa-empty-results",
31270
31546
  "data-cy": "lupa-no-results-in-page"
31271
31547
  };
31272
- const _hoisted_4$3 = {
31548
+ const _hoisted_4$5 = {
31273
31549
  key: 5,
31274
31550
  class: "lupa-empty-results",
31275
31551
  "data-cy": "lupa-no-results"
31276
31552
  };
31277
- const _hoisted_5 = { key: 6 };
31553
+ const _hoisted_5$1 = { key: 6 };
31278
31554
  const _hoisted_6 = { key: 7 };
31279
- const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31555
+ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
31280
31556
  __name: "SearchResultsProducts",
31281
31557
  props: {
31282
31558
  options: {},
@@ -31292,7 +31568,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31292
31568
  hasResults,
31293
31569
  currentQueryText,
31294
31570
  isPageEmpty,
31295
- isMobileSidebarVisible,
31571
+ isFilterSidebarVisible,
31296
31572
  columnCount,
31297
31573
  searchResult,
31298
31574
  layout,
@@ -31323,7 +31599,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31323
31599
  });
31324
31600
  const showTopFilters = vue.computed(() => {
31325
31601
  var _a25, _b25, _c;
31326
- return ((_c = (_b25 = (_a25 = props.options.filters) == null ? void 0 : _a25.facets) == null ? void 0 : _b25.style) == null ? void 0 : _c.type) === "top-dropdown";
31602
+ return ((_c = (_b25 = (_a25 = props.options.filters) == null ? void 0 : _a25.facets) == null ? void 0 : _b25.style) == null ? void 0 : _c.type) !== "sidebar";
31327
31603
  });
31328
31604
  const showMobileFilters = vue.computed(() => {
31329
31605
  return props.options.searchTitlePosition !== "search-results-top";
@@ -31400,40 +31676,40 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31400
31676
  };
31401
31677
  return (_ctx, _cache) => {
31402
31678
  var _a25, _b25, _c;
31403
- return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
31404
- vue.unref(loading) && !vue.unref(isMobileSidebarVisible) ? (vue.openBlock(), vue.createBlock(Spinner, {
31679
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
31680
+ vue.unref(loading) && !vue.unref(isFilterSidebarVisible) ? (vue.openBlock(), vue.createBlock(Spinner, {
31405
31681
  key: 0,
31406
31682
  class: "lupa-loader"
31407
31683
  })) : vue.createCommentVNode("", true),
31408
- vue.createVNode(_sfc_main$l, {
31684
+ vue.createVNode(_sfc_main$n, {
31409
31685
  options: _ctx.options.redirectionSuggestions
31410
31686
  }, null, 8, ["options"]),
31411
- vue.createVNode(_sfc_main$q, {
31687
+ vue.createVNode(_sfc_main$s, {
31412
31688
  options: _ctx.options,
31413
31689
  location: "top",
31414
31690
  sdkOptions: _ctx.options.options
31415
31691
  }, null, 8, ["options", "sdkOptions"]),
31416
- showLocalRelatedQueries.value ? (vue.openBlock(), vue.createBlock(_sfc_main$m, {
31692
+ showLocalRelatedQueries.value ? (vue.openBlock(), vue.createBlock(_sfc_main$o, {
31417
31693
  key: 1,
31418
31694
  options: _ctx.options.relatedQueries
31419
31695
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31420
- showApiRelatedQueries.value ? (vue.openBlock(), vue.createBlock(_sfc_main$i, {
31696
+ showApiRelatedQueries.value ? (vue.openBlock(), vue.createBlock(_sfc_main$k, {
31421
31697
  key: 2,
31422
31698
  options: _ctx.options.relatedQueries
31423
31699
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31424
31700
  vue.unref(hasResults) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 3 }, [
31425
- showTopFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$M, {
31701
+ showTopFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$P, {
31426
31702
  key: 0,
31427
31703
  options: (_a25 = _ctx.options.filters) != null ? _a25 : {}
31428
31704
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31429
- showMobileFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$F, {
31705
+ showMobileFilters.value ? (vue.openBlock(), vue.createBlock(_sfc_main$H, {
31430
31706
  key: 1,
31431
31707
  class: "lupa-toolbar-mobile",
31432
31708
  options: _ctx.options,
31433
31709
  "pagination-location": "top",
31434
31710
  onFilter: filter
31435
31711
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31436
- currentFilterOptions.value && currentFilterPositionDesktop.value === "pageTop" ? (vue.openBlock(), vue.createBlock(_sfc_main$_, {
31712
+ currentFilterOptions.value && currentFilterPositionDesktop.value === "pageTop" ? (vue.openBlock(), vue.createBlock(_sfc_main$14, {
31437
31713
  key: 2,
31438
31714
  class: vue.normalizeClass(currentFiltersClass.value),
31439
31715
  "data-cy": "lupa-search-result-filters-mobile-toolbar",
@@ -31442,19 +31718,19 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31442
31718
  }, null, 8, ["class", "options", "expandable"])) : vue.createCommentVNode("", true)
31443
31719
  ], 64)) : vue.createCommentVNode("", true),
31444
31720
  vue.unref(hasResults) ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 4 }, [
31445
- vue.createVNode(_sfc_main$F, {
31721
+ vue.createVNode(_sfc_main$H, {
31446
31722
  class: "lupa-toolbar-top",
31447
31723
  options: _ctx.options,
31448
31724
  "pagination-location": "top"
31449
31725
  }, null, 8, ["options"]),
31450
- currentFilterOptions.value && currentFilterPositionDesktop.value === "resultsTop" ? (vue.openBlock(), vue.createBlock(_sfc_main$_, {
31726
+ currentFilterOptions.value && currentFilterPositionDesktop.value === "resultsTop" ? (vue.openBlock(), vue.createBlock(_sfc_main$14, {
31451
31727
  key: 0,
31452
31728
  class: vue.normalizeClass(currentFiltersClass.value),
31453
31729
  "data-cy": "lupa-search-result-filters-mobile-toolbar",
31454
31730
  options: currentFilterOptions.value,
31455
31731
  expandable: !desktopFiltersExpanded.value
31456
31732
  }, null, 8, ["class", "options", "expandable"])) : vue.createCommentVNode("", true),
31457
- vue.createElementVNode("div", _hoisted_2$a, [
31733
+ vue.createElementVNode("div", _hoisted_2$c, [
31458
31734
  _ctx.$slots.productCard ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(vue.unref(searchResult).items, (product, index) => {
31459
31735
  return vue.renderSlot(_ctx.$slots, "productCard", {
31460
31736
  style: vue.normalizeStyle(columnSize.value),
@@ -31463,7 +31739,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31463
31739
  options: productCardOptions.value
31464
31740
  });
31465
31741
  }), 128)) : (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 1 }, vue.renderList(vue.unref(searchResult).items, (product, index) => {
31466
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
31742
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
31467
31743
  style: vue.normalizeStyle(columnSize.value),
31468
31744
  key: getProductKeyAction(index, product),
31469
31745
  product,
@@ -31472,7 +31748,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31472
31748
  }, null, 8, ["style", "product", "options", "analytics-metadata"]);
31473
31749
  }), 128))
31474
31750
  ]),
31475
- vue.unref(isPageEmpty) && _ctx.options.labels.noItemsInPage ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$5, [
31751
+ vue.unref(isPageEmpty) && _ctx.options.labels.noItemsInPage ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$7, [
31476
31752
  vue.createTextVNode(vue.toDisplayString(_ctx.options.labels.noItemsInPage) + " ", 1),
31477
31753
  _ctx.options.labels.backToFirstPage ? (vue.openBlock(), vue.createElementBlock("span", {
31478
31754
  key: 0,
@@ -31480,36 +31756,36 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31480
31756
  onClick: goToFirstPage
31481
31757
  }, vue.toDisplayString(_ctx.options.labels.backToFirstPage), 1)) : vue.createCommentVNode("", true)
31482
31758
  ])) : vue.createCommentVNode("", true),
31483
- vue.createVNode(_sfc_main$F, {
31759
+ vue.createVNode(_sfc_main$H, {
31484
31760
  class: "lupa-toolbar-bottom",
31485
31761
  options: _ctx.options,
31486
31762
  "pagination-location": "bottom"
31487
31763
  }, null, 8, ["options"]),
31488
- vue.createVNode(_sfc_main$q, {
31764
+ vue.createVNode(_sfc_main$s, {
31489
31765
  options: _ctx.options,
31490
31766
  location: "bottom",
31491
31767
  sdkOptions: _ctx.options.options
31492
31768
  }, null, 8, ["options", "sdkOptions"])
31493
- ], 64)) : !vue.unref(loading) && vue.unref(currentQueryText) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [
31494
- vue.createVNode(_sfc_main$h, {
31769
+ ], 64)) : !vue.unref(loading) && vue.unref(currentQueryText) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$5, [
31770
+ vue.createVNode(_sfc_main$j, {
31495
31771
  emptyResultsLabel: (_b25 = _ctx.options.labels) == null ? void 0 : _b25.emptyResults,
31496
31772
  currentQueryText: vue.unref(currentQueryText),
31497
31773
  hasSimilarQueries: hasSimilarQueries.value || hasSimilarResults.value,
31498
31774
  zeroResults: (_c = _ctx.options) == null ? void 0 : _c.zeroResults
31499
31775
  }, null, 8, ["emptyResultsLabel", "currentQueryText", "hasSimilarQueries", "zeroResults"])
31500
31776
  ])) : vue.createCommentVNode("", true),
31501
- vue.createVNode(_sfc_main$k, {
31777
+ vue.createVNode(_sfc_main$m, {
31502
31778
  labels: _ctx.options.labels
31503
31779
  }, null, 8, ["labels"]),
31504
- hasSimilarQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5, [
31505
- vue.createVNode(_sfc_main$s, {
31780
+ hasSimilarQueries.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, [
31781
+ vue.createVNode(_sfc_main$u, {
31506
31782
  labels: similarQueriesLabels.value,
31507
31783
  columnSize: columnSize.value,
31508
31784
  productCardOptions: productCardOptions.value
31509
31785
  }, null, 8, ["labels", "columnSize", "productCardOptions"])
31510
31786
  ])) : vue.createCommentVNode("", true),
31511
31787
  hasSimilarResults.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, [
31512
- vue.createVNode(_sfc_main$o, {
31788
+ vue.createVNode(_sfc_main$q, {
31513
31789
  labels: similarResultsLabels.value,
31514
31790
  columnSize: columnSize.value,
31515
31791
  productCardOptions: productCardOptions.value
@@ -31520,17 +31796,17 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31520
31796
  };
31521
31797
  }
31522
31798
  });
31523
- const _hoisted_1$d = { class: "lupa-top-mobile-filter-wrapper" };
31524
- const _hoisted_2$9 = {
31799
+ const _hoisted_1$f = { class: "lupa-top-mobile-filter-wrapper" };
31800
+ const _hoisted_2$b = {
31525
31801
  key: 0,
31526
31802
  class: "lupa-category-back"
31527
31803
  };
31528
- const _hoisted_3$4 = ["href"];
31529
- const _hoisted_4$2 = {
31804
+ const _hoisted_3$6 = ["href"];
31805
+ const _hoisted_4$4 = {
31530
31806
  key: 1,
31531
31807
  class: "lupa-child-category-list"
31532
31808
  };
31533
- const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
31809
+ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
31534
31810
  __name: "CategoryTopFilters",
31535
31811
  props: {
31536
31812
  options: {}
@@ -31578,24 +31854,24 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
31578
31854
  "has-related-category-children": hasRelatedCategoryChildren.value
31579
31855
  }])
31580
31856
  }, [
31581
- vue.createElementVNode("div", _hoisted_1$d, [
31582
- hasBackButton.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$9, [
31857
+ vue.createElementVNode("div", _hoisted_1$f, [
31858
+ hasBackButton.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$b, [
31583
31859
  vue.createElementVNode("a", {
31584
31860
  "data-cy": "lupa-category-back",
31585
31861
  href: backUrlLink.value,
31586
31862
  onClick: handleNavigationBack
31587
- }, vue.toDisplayString(backTitle.value), 9, _hoisted_3$4)
31863
+ }, vue.toDisplayString(backTitle.value), 9, _hoisted_3$6)
31588
31864
  ])) : vue.createCommentVNode("", true),
31589
- hasRelatedCategoryChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$2, [
31865
+ hasRelatedCategoryChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$4, [
31590
31866
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(relatedCategoryChildren), (child) => {
31591
- return vue.openBlock(), vue.createBlock(_sfc_main$Z, {
31867
+ return vue.openBlock(), vue.createBlock(_sfc_main$13, {
31592
31868
  key: getCategoryKey(child),
31593
31869
  item: child,
31594
31870
  options: categoryOptions.value
31595
31871
  }, null, 8, ["item", "options"]);
31596
31872
  }), 128))
31597
31873
  ])) : vue.createCommentVNode("", true),
31598
- vue.createVNode(_sfc_main$F, {
31874
+ vue.createVNode(_sfc_main$H, {
31599
31875
  class: "lupa-toolbar-mobile",
31600
31876
  "pagination-location": "top",
31601
31877
  options: _ctx.options
@@ -31605,6 +31881,129 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
31605
31881
  };
31606
31882
  }
31607
31883
  });
31884
+ const _hoisted_1$e = {
31885
+ id: "lupa-search-results-sort-list",
31886
+ class: "lupa-search-results-sort-list"
31887
+ };
31888
+ const _hoisted_2$a = ["onClick"];
31889
+ const _hoisted_3$5 = ["for"];
31890
+ const _hoisted_4$3 = ["id", "checked"];
31891
+ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
31892
+ __name: "SortList",
31893
+ setup(__props) {
31894
+ const { sortItems, selectedKey, handleSelect, setSortValue } = useSorting();
31895
+ vue.onMounted(() => {
31896
+ setSortValue();
31897
+ });
31898
+ const selectValue = (key) => {
31899
+ selectedKey.value = key;
31900
+ handleSelect();
31901
+ };
31902
+ return (_ctx, _cache) => {
31903
+ return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
31904
+ vue.createElementVNode("ul", null, [
31905
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(sortItems), (option) => {
31906
+ return vue.openBlock(), vue.createElementBlock("li", {
31907
+ key: option.key,
31908
+ class: vue.normalizeClass({ "lupa-sort-item-selected": option.key === vue.unref(selectedKey) }),
31909
+ onClick: ($event) => selectValue(option.key)
31910
+ }, [
31911
+ vue.createElementVNode("label", {
31912
+ for: "lupa-sort-list-" + option.key
31913
+ }, vue.toDisplayString(option.label), 9, _hoisted_3$5),
31914
+ vue.createElementVNode("input", {
31915
+ id: "lupa-sort-list-" + option.key,
31916
+ type: "radio",
31917
+ checked: option.key === vue.unref(selectedKey)
31918
+ }, null, 8, _hoisted_4$3)
31919
+ ], 10, _hoisted_2$a);
31920
+ }), 128))
31921
+ ])
31922
+ ]);
31923
+ };
31924
+ }
31925
+ });
31926
+ const _hoisted_1$d = { class: "lupa-sort-sidebar-content" };
31927
+ const _hoisted_2$9 = { class: "lupa-sidebar-top" };
31928
+ const _hoisted_3$4 = { class: "lupa-sidebar-title" };
31929
+ const _hoisted_4$2 = { class: "lupa-sidebar-sort-options" };
31930
+ const _hoisted_5 = { class: "lupa-sidebar-sort-actions" };
31931
+ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
31932
+ __name: "SortDrawer",
31933
+ setup(__props) {
31934
+ const optionsStore = useOptionsStore();
31935
+ const searchResultStore = useSearchResultStore();
31936
+ const paramStore = useParamsStore();
31937
+ const { searchResultOptions } = storeToRefs(optionsStore);
31938
+ const { isSidebarClosing, isSortingSidebarVisible } = storeToRefs(searchResultStore);
31939
+ const { handleSortSidebarToggle } = useSidebarToggle();
31940
+ const sortStyleOptions = vue.computed(() => {
31941
+ var _a25;
31942
+ return (_a25 = searchResultOptions.value) == null ? void 0 : _a25.sortStyle;
31943
+ });
31944
+ const sidebarTitle = vue.computed(() => {
31945
+ var _a25, _b25, _c, _d;
31946
+ return (_d = (_c = (_b25 = (_a25 = sortStyleOptions == null ? void 0 : sortStyleOptions.value) == null ? void 0 : _a25.drawer) == null ? void 0 : _b25.labels) == null ? void 0 : _c.title) != null ? _d : "";
31947
+ });
31948
+ const clearSortLabel = vue.computed(() => {
31949
+ var _a25, _b25, _c, _d;
31950
+ return (_d = (_c = (_b25 = (_a25 = sortStyleOptions == null ? void 0 : sortStyleOptions.value) == null ? void 0 : _a25.drawer) == null ? void 0 : _b25.labels) == null ? void 0 : _c.clearLabel) != null ? _d : "";
31951
+ });
31952
+ const applySortLabel = vue.computed(() => {
31953
+ var _a25, _b25, _c, _d;
31954
+ return (_d = (_c = (_b25 = (_a25 = sortStyleOptions == null ? void 0 : sortStyleOptions.value) == null ? void 0 : _a25.drawer) == null ? void 0 : _b25.labels) == null ? void 0 : _c.applyLabel) != null ? _d : "";
31955
+ });
31956
+ const handleDrawerToggle = () => {
31957
+ searchResultStore.setSidebarState({ visible: false, sidebar: "sorting" });
31958
+ };
31959
+ const clearSort = () => {
31960
+ paramStore.removeParameters({
31961
+ paramsToRemove: [optionsStore.getQueryParamName(QUERY_PARAMS.SORT)]
31962
+ });
31963
+ handleSortSidebarToggle();
31964
+ };
31965
+ const applySort = () => {
31966
+ handleSortSidebarToggle();
31967
+ };
31968
+ return (_ctx, _cache) => {
31969
+ return vue.unref(isSortingSidebarVisible) ? (vue.openBlock(), vue.createElementBlock("div", {
31970
+ key: 0,
31971
+ class: vue.normalizeClass(["lupa-sort-sidebar", { "lupa-sort-is-closing": vue.unref(isSidebarClosing) }])
31972
+ }, [
31973
+ vue.createElementVNode("div", {
31974
+ class: "lupa-sidebar-close",
31975
+ onClick: vue.withModifiers(handleDrawerToggle, ["stop"])
31976
+ }),
31977
+ vue.createElementVNode("div", _hoisted_1$d, [
31978
+ vue.createElementVNode("div", _hoisted_2$9, [
31979
+ vue.createElementVNode("div", _hoisted_3$4, vue.toDisplayString(sidebarTitle.value), 1),
31980
+ vue.createElementVNode("div", {
31981
+ class: "lupa-filter-toggle-mobile",
31982
+ onClick: handleDrawerToggle
31983
+ })
31984
+ ]),
31985
+ vue.createElementVNode("div", _hoisted_4$2, [
31986
+ vue.createVNode(_sfc_main$g)
31987
+ ]),
31988
+ vue.createElementVNode("div", _hoisted_5, [
31989
+ clearSortLabel.value ? (vue.openBlock(), vue.createElementBlock("button", {
31990
+ key: 0,
31991
+ type: "button",
31992
+ class: "lupa-sidebar-sort-clear",
31993
+ onClick: vue.withModifiers(clearSort, ["stop"])
31994
+ }, vue.toDisplayString(clearSortLabel.value), 1)) : vue.createCommentVNode("", true),
31995
+ applySortLabel.value ? (vue.openBlock(), vue.createElementBlock("button", {
31996
+ key: 1,
31997
+ type: "button",
31998
+ class: "lupa-sidebar-sort-apply",
31999
+ onClick: vue.withModifiers(applySort, ["stop"])
32000
+ }, vue.toDisplayString(applySortLabel.value), 1)) : vue.createCommentVNode("", true)
32001
+ ])
32002
+ ])
32003
+ ], 2)) : vue.createCommentVNode("", true);
32004
+ };
32005
+ }
32006
+ });
31608
32007
  const _hoisted_1$c = {
31609
32008
  key: 0,
31610
32009
  class: "lupa-container-title-summary-mobile"
@@ -31639,7 +32038,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31639
32038
  currentQueryText,
31640
32039
  hasResults,
31641
32040
  currentFilterCount,
31642
- isMobileSidebarVisible,
32041
+ isFilterSidebarVisible,
31643
32042
  layout,
31644
32043
  loadingFacets,
31645
32044
  loadingRefiners
@@ -31661,7 +32060,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31661
32060
  });
31662
32061
  const indicatorClasses = vue.computed(() => {
31663
32062
  return {
31664
- "lupa-mobile-sidebar-visible": isMobileSidebarVisible.value,
32063
+ "lupa-mobile-sidebar-visible": isFilterSidebarVisible.value,
31665
32064
  "lupa-layout-grid": !layout.value || layout.value === ResultsLayoutEnum.GRID,
31666
32065
  "lupa-layout-list": layout.value === ResultsLayoutEnum.LIST
31667
32066
  };
@@ -31903,32 +32302,33 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31903
32302
  class: vue.normalizeClass(["lupa-search-result-wrapper", { "lupa-search-wrapper-no-results": !vue.unref(hasResults) }])
31904
32303
  }, [
31905
32304
  _ctx.isContainer ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
31906
- vue.createVNode(_sfc_main$12, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
31907
- vue.createVNode(_sfc_main$10, {
32305
+ vue.createVNode(_sfc_main$18, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
32306
+ vue.createVNode(_sfc_main$16, {
31908
32307
  "show-summary": true,
31909
32308
  options: _ctx.options,
31910
32309
  "is-product-list": (_a25 = _ctx.isProductList) != null ? _a25 : false
31911
32310
  }, null, 8, ["options", "is-product-list"])
31912
32311
  ])) : vue.createCommentVNode("", true),
31913
- isTitleResultTopPosition.value ? (vue.openBlock(), vue.createBlock(_sfc_main$f, {
32312
+ isTitleResultTopPosition.value ? (vue.openBlock(), vue.createBlock(_sfc_main$h, {
31914
32313
  key: 1,
31915
32314
  options: _ctx.options
31916
32315
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31917
- _ctx.options.filters ? (vue.openBlock(), vue.createBlock(_sfc_main$O, {
32316
+ _ctx.options.filters ? (vue.openBlock(), vue.createBlock(_sfc_main$R, {
31918
32317
  key: 2,
31919
32318
  options: _ctx.options.filters,
31920
32319
  onFilter: handleParamsChange
31921
32320
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31922
- vue.unref(currentQueryText) || _ctx.isProductList ? (vue.openBlock(), vue.createBlock(_sfc_main$N, {
31923
- key: 3,
32321
+ _ctx.options.sort ? (vue.openBlock(), vue.createBlock(_sfc_main$f, { key: 3 })) : vue.createCommentVNode("", true),
32322
+ vue.unref(currentQueryText) || _ctx.isProductList ? (vue.openBlock(), vue.createBlock(_sfc_main$Q, {
32323
+ key: 4,
31924
32324
  breadcrumbs: _ctx.options.breadcrumbs
31925
32325
  }, null, 8, ["breadcrumbs"])) : vue.createCommentVNode("", true),
31926
32326
  isTitleResultTopPosition.value ? (vue.openBlock(), vue.createElementBlock("div", {
31927
- key: 4,
32327
+ key: 5,
31928
32328
  id: "lupa-search-results",
31929
32329
  class: vue.normalizeClass(["top-layout-wrapper", indicatorClasses.value])
31930
32330
  }, [
31931
- showFilterSidebar.value ? (vue.openBlock(), vue.createBlock(_sfc_main$P, {
32331
+ showFilterSidebar.value ? (vue.openBlock(), vue.createBlock(_sfc_main$S, {
31932
32332
  key: 0,
31933
32333
  options: (_b25 = _ctx.options.filters) != null ? _b25 : {},
31934
32334
  ref_key: "searchResultsFilters",
@@ -31936,12 +32336,12 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31936
32336
  onFilter: handleParamsChange
31937
32337
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31938
32338
  vue.createElementVNode("div", _hoisted_2$8, [
31939
- vue.createVNode(_sfc_main$12, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
31940
- vue.createVNode(_sfc_main$10, {
32339
+ vue.createVNode(_sfc_main$18, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
32340
+ vue.createVNode(_sfc_main$16, {
31941
32341
  options: _ctx.options,
31942
32342
  "is-product-list": (_c = _ctx.isProductList) != null ? _c : false
31943
32343
  }, null, 8, ["options", "is-product-list"]),
31944
- vue.createVNode(_sfc_main$g, {
32344
+ vue.createVNode(_sfc_main$i, {
31945
32345
  options: _ctx.options,
31946
32346
  ssr: ssrEnabled.value,
31947
32347
  onFilter: handleParamsChange
@@ -31952,9 +32352,9 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31952
32352
  _: 3
31953
32353
  }, 8, ["options", "ssr"])
31954
32354
  ])
31955
- ], 2)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 5 }, [
31956
- vue.createVNode(_sfc_main$12, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
31957
- vue.createVNode(_sfc_main$10, {
32355
+ ], 2)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 6 }, [
32356
+ vue.createVNode(_sfc_main$18, { labels: didYouMeanLabels.value }, null, 8, ["labels"]),
32357
+ vue.createVNode(_sfc_main$16, {
31958
32358
  options: _ctx.options,
31959
32359
  "is-product-list": (_d = _ctx.isProductList) != null ? _d : false
31960
32360
  }, null, 8, ["options", "is-product-list"]),
@@ -31962,14 +32362,14 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
31962
32362
  id: "lupa-search-results",
31963
32363
  class: vue.normalizeClass(indicatorClasses.value)
31964
32364
  }, [
31965
- showFilterSidebar.value ? (vue.openBlock(), vue.createBlock(_sfc_main$P, {
32365
+ showFilterSidebar.value ? (vue.openBlock(), vue.createBlock(_sfc_main$S, {
31966
32366
  key: 0,
31967
32367
  options: (_e = _ctx.options.filters) != null ? _e : {},
31968
32368
  ref_key: "searchResultsFilters",
31969
32369
  ref: searchResultsFilters,
31970
32370
  onFilter: handleParamsChange
31971
32371
  }, null, 8, ["options"])) : vue.createCommentVNode("", true),
31972
- vue.createVNode(_sfc_main$g, {
32372
+ vue.createVNode(_sfc_main$i, {
31973
32373
  options: _ctx.options,
31974
32374
  ssr: ssrEnabled.value,
31975
32375
  onFilter: handleParamsChange
@@ -32113,7 +32513,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
32113
32513
  onClick: vue.withModifiers(innerClick, ["stop"])
32114
32514
  }, [
32115
32515
  vue.createElementVNode("div", _hoisted_1$a, [
32116
- vue.createVNode(_sfc_main$13, {
32516
+ vue.createVNode(_sfc_main$19, {
32117
32517
  options: fullSearchBoxOptions.value,
32118
32518
  "is-search-container": true,
32119
32519
  ref_key: "searchBox",
@@ -33768,7 +34168,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
33768
34168
  key: getProductKeyAction(index, product)
33769
34169
  }, {
33770
34170
  default: vue.withCtx(() => [
33771
- vue.createVNode(_sfc_main$t, {
34171
+ vue.createVNode(_sfc_main$v, {
33772
34172
  product,
33773
34173
  options: _ctx.options,
33774
34174
  "click-tracking-settings": clickTrackingSettings.value,
@@ -33783,7 +34183,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
33783
34183
  _: 1
33784
34184
  }, 16, ["wrap-around"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$1, [
33785
34185
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(recommendations.value, (product, index) => {
33786
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
34186
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
33787
34187
  style: vue.normalizeStyle(columnSize.value),
33788
34188
  key: getProductKeyAction(index, product),
33789
34189
  product,
@@ -34029,7 +34429,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
34029
34429
  vue.createElementVNode("a", {
34030
34430
  href: getLink(product)
34031
34431
  }, [
34032
- vue.createVNode(_sfc_main$E, {
34432
+ vue.createVNode(_sfc_main$G, {
34033
34433
  item: product,
34034
34434
  options: image.value
34035
34435
  }, null, 8, ["item", "options"])
@@ -34194,7 +34594,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
34194
34594
  return (_ctx, _cache) => {
34195
34595
  return vue.openBlock(), vue.createElementBlock("section", _hoisted_1$3, [
34196
34596
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(_ctx.searchResults, (product, index) => {
34197
- return vue.openBlock(), vue.createBlock(_sfc_main$t, {
34597
+ return vue.openBlock(), vue.createBlock(_sfc_main$v, {
34198
34598
  class: "lupa-chat-product-card",
34199
34599
  key: getProductKeyAction(index, product),
34200
34600
  product,
@@ -34528,7 +34928,7 @@ exports.DocumentElementType = DocumentElementType;
34528
34928
  exports.LupaSearch = LupaSearch;
34529
34929
  exports.ProductList = _sfc_main$c;
34530
34930
  exports.Recommendations = _sfc_main$a;
34531
- exports.SearchBox = _sfc_main$13;
34931
+ exports.SearchBox = _sfc_main$19;
34532
34932
  exports.SearchBoxPanelType = SearchBoxPanelType;
34533
34933
  exports.SearchContainer = _sfc_main$b;
34534
34934
  exports.SearchResults = _sfc_main$e;