@getlupa/client 1.21.0 → 1.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18100,6 +18100,10 @@ const useOptionsStore = /* @__PURE__ */ defineStore("options", () => {
18100
18100
  return (_b25 = (_a25 = currentResolutionPageSizes.value) == null ? void 0 : _a25[0]) != null ? _b25 : DEFAULT_PAGE_SIZE;
18101
18101
  }
18102
18102
  );
18103
+ const ariaLabels = computed(() => {
18104
+ var _a25, _b25;
18105
+ return (_b25 = (_a25 = searchResultOptions.value.labels) == null ? void 0 : _a25.aria) != null ? _b25 : {};
18106
+ });
18103
18107
  const currentResolutionPageSizes = computed(() => {
18104
18108
  var _a25, _b25, _c, _d;
18105
18109
  const pageSizes = (_d = (_c = (_b25 = (_a25 = searchResultOptions.value) == null ? void 0 : _a25.pagination) == null ? void 0 : _b25.sizeSelection) == null ? void 0 : _c.sizes) != null ? _d : DEFAULT_PAGE_SIZE_SELECTION;
@@ -18155,6 +18159,7 @@ const useOptionsStore = /* @__PURE__ */ defineStore("options", () => {
18155
18159
  defaultSearchResultPageSize,
18156
18160
  currentResolutionPageSizes,
18157
18161
  productRecommendationOptions,
18162
+ ariaLabels,
18158
18163
  setSearchBoxOptions,
18159
18164
  setTrackingOptions,
18160
18165
  setSearchResultOptions,
@@ -18638,13 +18643,13 @@ const unfoldRangeFilter = (key, filter, price = {}) => {
18638
18643
  }
18639
18644
  ];
18640
18645
  }
18641
- return [{ key, value: `${gt} - ${lt}`, type: "range" }];
18646
+ return [{ key, value: `${gt != null ? gt : "*"} - ${lt != null ? lt : "*"}`, type: "range" }];
18642
18647
  };
18643
18648
  const unfoldFilter = (key, filter, price = {}) => {
18644
18649
  if (Array.isArray(filter)) {
18645
18650
  return unfoldTermFilter(key, filter);
18646
18651
  }
18647
- if (filter.gte) {
18652
+ if (filter.gte || filter.lte || filter.gt || filter.lt) {
18648
18653
  return unfoldRangeFilter(key, filter, price);
18649
18654
  }
18650
18655
  if (filter.terms) {
@@ -18697,8 +18702,9 @@ const recursiveFilterItem = (item, query = "") => {
18697
18702
  }) : void 0;
18698
18703
  };
18699
18704
  const rangeFilterToString = (rangeFilter, separator) => {
18705
+ var _a25, _b25, _c;
18700
18706
  separator = separator || FACET_TERM_RANGE_SEPARATOR;
18701
- return rangeFilter && Object.keys(rangeFilter).length ? rangeFilter.gte + separator + (rangeFilter.lte || rangeFilter.lt) : "";
18707
+ return rangeFilter && Object.keys(rangeFilter).length ? ((_a25 = rangeFilter.gte) != null ? _a25 : "") + separator + (((_b25 = rangeFilter.lte) != null ? _b25 : "") || ((_c = rangeFilter.lt) != null ? _c : "")) : "";
18702
18708
  };
18703
18709
  const pick = (obj, keys) => {
18704
18710
  const ret = /* @__PURE__ */ Object.create({});
@@ -18757,14 +18763,15 @@ const parseFacetKey = (key, searchParams) => {
18757
18763
  return (_b25 = (_a25 = searchParams.getAll(key)) == null ? void 0 : _a25.map((v) => decodeURIComponent(v))) != null ? _b25 : [];
18758
18764
  }
18759
18765
  if (key.startsWith(FACET_PARAMS_TYPE.RANGE)) {
18766
+ const isPrice = key == null ? void 0 : key.includes(CURRENCY_KEY_INDICATOR);
18760
18767
  const range2 = searchParams.get(key);
18761
18768
  if (!range2) {
18762
18769
  return {};
18763
18770
  }
18764
18771
  const [min, max] = range2.split(FACET_RANGE_SEPARATOR);
18765
18772
  return {
18766
- gte: min,
18767
- lte: max
18773
+ gte: min || void 0,
18774
+ [isPrice ? "lte" : "lt"]: max || void 0
18768
18775
  };
18769
18776
  }
18770
18777
  if (key.startsWith(FACET_PARAMS_TYPE.HIERARCHY)) {
@@ -18964,16 +18971,27 @@ const toggleHierarchyFilter = (appendParams, facetAction, getQueryParamName, cur
18964
18971
  paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE]
18965
18972
  });
18966
18973
  };
18967
- const toggleRangeFilter = (appendParams, facetAction, getQueryParamName, currentFilters) => {
18974
+ const toggleRangeFilter = (appendParams, removeParameters, facetAction, getQueryParamName, currentFilters) => {
18975
+ var _a25, _b25;
18968
18976
  const currentFilter = rangeFilterToString(
18969
18977
  currentFilters == null ? void 0 : currentFilters[facetAction.key],
18970
18978
  FACET_RANGE_SEPARATOR
18971
18979
  );
18972
- let facetValue = facetAction.value.join(FACET_RANGE_SEPARATOR);
18980
+ let facetValue = (_b25 = (_a25 = facetAction == null ? void 0 : facetAction.value) == null ? void 0 : _a25.join(FACET_RANGE_SEPARATOR)) != null ? _b25 : "";
18973
18981
  facetValue = currentFilter === facetValue ? "" : facetValue;
18982
+ const paramsToRemove = getQueryParamName ? [getQueryParamName(QUERY_PARAMS$1.PAGE)] : [QUERY_PARAMS$1.PAGE];
18983
+ if (!facetValue) {
18984
+ removeParameters({
18985
+ paramsToRemove: [
18986
+ getFacetParam(facetAction.key, "", FACET_PARAMS_TYPE.RANGE).name,
18987
+ ...paramsToRemove
18988
+ ]
18989
+ });
18990
+ return;
18991
+ }
18974
18992
  appendParams({
18975
18993
  params: [getFacetParam(facetAction.key, facetValue, FACET_PARAMS_TYPE.RANGE)],
18976
- paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE],
18994
+ paramsToRemove,
18977
18995
  encode: false
18978
18996
  });
18979
18997
  };
@@ -19767,6 +19785,7 @@ const _hoisted_1$1l = {
19767
19785
  const _hoisted_2$W = { class: "lupa-dialog-content" };
19768
19786
  const _hoisted_3$E = { class: "lupa-listening-text" };
19769
19787
  const _hoisted_4$u = { class: "lupa-mic-button-wrapper" };
19788
+ const _hoisted_5$l = ["aria-label"];
19770
19789
  const _sfc_main$1z = /* @__PURE__ */ defineComponent({
19771
19790
  __name: "VoiceSearchDialog",
19772
19791
  props: {
@@ -19870,6 +19889,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
19870
19889
  reset: dialogReset
19871
19890
  });
19872
19891
  return (_ctx, _cache) => {
19892
+ var _a25, _b25;
19873
19893
  return openBlock(), createElementBlock("div", null, [
19874
19894
  props.isOpen ? (openBlock(), createElementBlock("div", _hoisted_1$1l, [
19875
19895
  createBaseVNode("button", {
@@ -19881,8 +19901,10 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
19881
19901
  createBaseVNode("div", _hoisted_4$u, [
19882
19902
  createBaseVNode("button", {
19883
19903
  class: normalizeClass(["lupa-mic-button", { recording: unref(isRecording) }]),
19884
- onClick: handleRecordingButtonClick
19885
- }, null, 2),
19904
+ onClick: handleRecordingButtonClick,
19905
+ "aria-controls": "voice-search-microphone",
19906
+ "aria-label": ((_b25 = (_a25 = labels.value) == null ? void 0 : _a25.aria) == null ? void 0 : _b25.microphone) || "Toggle microphone"
19907
+ }, null, 10, _hoisted_5$l),
19886
19908
  createVNode(_sfc_main$1A, {
19887
19909
  ref_key: "voiceSearchProgressBar",
19888
19910
  ref: voiceSearchProgressBar,
@@ -19908,6 +19930,7 @@ const _hoisted_6$8 = {
19908
19930
  class: "lupa-close-label"
19909
19931
  };
19910
19932
  const _hoisted_7$5 = { key: 1 };
19933
+ const _hoisted_8$3 = ["aria-label"];
19911
19934
  const _sfc_main$1y = /* @__PURE__ */ defineComponent({
19912
19935
  __name: "SearchBoxInput",
19913
19936
  props: {
@@ -19963,6 +19986,10 @@ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
19963
19986
  var _a25;
19964
19987
  return (_a25 = labels.value.searchInputAriaLabel) != null ? _a25 : "Search input";
19965
19988
  });
19989
+ const voiceSearchAriaLabel = computed(() => {
19990
+ var _a25, _b25, _c, _d;
19991
+ return (_d = (_c = (_b25 = (_a25 = props.options.voiceSearch) == null ? void 0 : _a25.labels) == null ? void 0 : _b25.aria) == null ? void 0 : _c.openDialog) != null ? _d : "Open voice search dialog";
19992
+ });
19966
19993
  onMounted(() => {
19967
19994
  document.addEventListener("click", handleClickOutsideVoiceDialogOverlay);
19968
19995
  });
@@ -20083,8 +20110,11 @@ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
20083
20110
  isVoiceSearchEnabled.value ? (openBlock(), createElementBlock("div", _hoisted_7$5, [
20084
20111
  createBaseVNode("button", {
20085
20112
  onClick: openVoiceSearchDialog,
20086
- class: "lupa-voice-search-button"
20087
- })
20113
+ class: "lupa-voice-search-button",
20114
+ "aria-haspopup": "dialog",
20115
+ "aria-controls": "voice-search-dialog",
20116
+ "aria-label": voiceSearchAriaLabel.value
20117
+ }, null, 8, _hoisted_8$3)
20088
20118
  ])) : createCommentVNode("", true),
20089
20119
  isVoiceSearchEnabled.value ? (openBlock(), createBlock(_sfc_main$1z, {
20090
20120
  key: 2,
@@ -30489,6 +30519,13 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
30489
30519
  const { addToCartAmount } = storeToRefs(searchResultStore);
30490
30520
  const emit2 = __emit;
30491
30521
  const loading = ref(false);
30522
+ const addToCartButtonClass = computed(() => {
30523
+ return {
30524
+ [props.options.className]: Boolean(props.options.className),
30525
+ "lupa-add-to-cart-loading": loading.value,
30526
+ "lupa-add-to-cart": !loading.value
30527
+ };
30528
+ });
30492
30529
  const label = computed(() => {
30493
30530
  return props.options.labels.addToCart;
30494
30531
  });
@@ -30512,7 +30549,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
30512
30549
  createBaseVNode("div", _hoisted_2$O, [
30513
30550
  hasLink.value ? (openBlock(), createElementBlock("button", mergeProps({
30514
30551
  key: 0,
30515
- class: loading.value ? "lupa-add-to-cart-loading" : "lupa-add-to-cart",
30552
+ class: addToCartButtonClass.value,
30516
30553
  "data-cy": "lupa-add-to-cart",
30517
30554
  disabled: !inStockValue.value || loading.value
30518
30555
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
@@ -30520,7 +30557,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
30520
30557
  ], 16, _hoisted_3$A)) : (openBlock(), createElementBlock("button", mergeProps({
30521
30558
  key: 1,
30522
30559
  onClick: withModifiers(handleClick, ["stop", "prevent"]),
30523
- class: loading.value ? "lupa-add-to-cart-loading" : "lupa-add-to-cart",
30560
+ class: addToCartButtonClass.value,
30524
30561
  "data-cy": "lupa-add-to-cart",
30525
30562
  type: "button",
30526
30563
  disabled: !inStockValue.value || loading.value
@@ -32926,7 +32963,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
32926
32963
  });
32927
32964
  const handleFacetClick = (item) => {
32928
32965
  var _a25;
32929
- const value = isRange.value ? item.title.split(FACET_TERM_RANGE_SEPARATOR) : (_a25 = item.title) == null ? void 0 : _a25.toString();
32966
+ const value = isRange.value ? [item.from, item.to] : (_a25 = item.title) == null ? void 0 : _a25.toString();
32930
32967
  emit2("select", {
32931
32968
  key: facet.value.key,
32932
32969
  value,
@@ -32940,7 +32977,11 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
32940
32977
  var _a25, _b25;
32941
32978
  let selectedItems = (_a25 = currentFiltersValue.value) != null ? _a25 : [];
32942
32979
  selectedItems = isRange.value && selectedItems ? [rangeFilterToString(selectedItems)] : selectedItems;
32943
- return selectedItems == null ? void 0 : selectedItems.includes((_b25 = item.title) == null ? void 0 : _b25.toString());
32980
+ if (isRange.value) {
32981
+ return selectedItems == null ? void 0 : selectedItems.includes(rangeFilterToString({ gte: item.from, lt: item.to }));
32982
+ } else {
32983
+ return selectedItems == null ? void 0 : selectedItems.includes((_b25 = item.title) == null ? void 0 : _b25.toString());
32984
+ }
32944
32985
  };
32945
32986
  const getItemLabel = (item) => {
32946
32987
  var _a25;
@@ -34379,12 +34420,12 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
34379
34420
  }), 128)),
34380
34421
  itemLimit.value < filteredValues.value.length ? (openBlock(), createElementBlock("div", {
34381
34422
  key: 1,
34382
- class: normalizeClass(["lupa-facet-term lupa-show-more-facet-results", { "lupa-show-less-facet-results": showAll.value }]),
34423
+ class: "lupa-facet-term lupa-show-more-facet-results",
34383
34424
  "data-cy": "lupa-facet-term",
34384
34425
  onClick: handleShowAll
34385
- }, toDisplayString(_ctx.options.labels.showAll), 3)) : showAll.value ? (openBlock(), createElementBlock("div", {
34426
+ }, toDisplayString(_ctx.options.labels.showAll), 1)) : showAll.value ? (openBlock(), createElementBlock("div", {
34386
34427
  key: 2,
34387
- class: "lupa-facet-term lupa-show-more-facet-results",
34428
+ class: "lupa-facet-term lupa-show-more-facet-results lupa-show-less-facet-results",
34388
34429
  onClick: handleCancelShowAll
34389
34430
  }, toDisplayString(_ctx.options.labels.showLess), 1)) : createCommentVNode("", true)
34390
34431
  ]);
@@ -34414,7 +34455,7 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent(__spreadProps2(__spreadValue
34414
34455
  },
34415
34456
  emits: ["select", "clear"],
34416
34457
  setup(__props, { emit: __emit }) {
34417
- var _a25, _b25;
34458
+ var _a25, _b25, _c;
34418
34459
  const props = __props;
34419
34460
  const facet = computed(() => {
34420
34461
  var _a26;
@@ -34426,10 +34467,19 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent(__spreadProps2(__spreadValue
34426
34467
  });
34427
34468
  const searchResultStore = useSearchResultStore();
34428
34469
  const optionsStore = useOptionsStore();
34470
+ const screenStore = useScreenStore();
34429
34471
  const { currentFilterKeys } = storeToRefs(searchResultStore);
34430
34472
  const { searchResultOptions } = storeToRefs(optionsStore);
34473
+ const { isMobileWidth } = storeToRefs(screenStore);
34431
34474
  const emit2 = __emit;
34432
- const isOpen = ref((_b25 = (_a25 = props.options.expand) == null ? void 0 : _a25.includes(props.facet.key)) != null ? _b25 : false);
34475
+ const allExpanded = computed(() => {
34476
+ var _a26, _b26, _c2, _d, _e, _f;
34477
+ if (isMobileWidth.value) {
34478
+ return (_c2 = (_b26 = (_a26 = props.options) == null ? void 0 : _a26.expandAll) == null ? void 0 : _b26.mobile) != null ? _c2 : false;
34479
+ }
34480
+ return (_f = (_e = (_d = props.options) == null ? void 0 : _d.expandAll) == null ? void 0 : _e.desktop) != null ? _f : false;
34481
+ });
34482
+ const isOpen = ref((_c = ((_b25 = (_a25 = props.options) == null ? void 0 : _a25.expand) == null ? void 0 : _b25.includes(props.facet.key)) || allExpanded.value) != null ? _c : false);
34433
34483
  const facetPanel = ref(null);
34434
34484
  const facetType = computed(() => {
34435
34485
  switch (facet.value.type) {
@@ -34692,6 +34742,7 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
34692
34742
  case "range":
34693
34743
  toggleRangeFilter(
34694
34744
  paramStore.appendParams,
34745
+ paramStore.removeParameters,
34695
34746
  facetAction,
34696
34747
  optionsStore.getQueryParamName,
34697
34748
  filters.value
@@ -35222,7 +35273,10 @@ const _hoisted_1$C = {
35222
35273
  "data-cy": "lupa-search-results-page-size"
35223
35274
  };
35224
35275
  const _hoisted_2$t = { id: "lupa-select" };
35225
- const _hoisted_3$l = { class: "lupa-select-label" };
35276
+ const _hoisted_3$l = {
35277
+ class: "lupa-select-label",
35278
+ for: "lupa-page-size-select-dropdown"
35279
+ };
35226
35280
  const _hoisted_4$d = ["aria-label"];
35227
35281
  const _hoisted_5$a = ["value"];
35228
35282
  const _sfc_main$H = /* @__PURE__ */ defineComponent({
@@ -35235,6 +35289,7 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
35235
35289
  const props = __props;
35236
35290
  const paramsStore = useParamsStore();
35237
35291
  const optionsStore = useOptionsStore();
35292
+ const { ariaLabels } = storeToRefs(optionsStore);
35238
35293
  const select = ref(null);
35239
35294
  const prefixLabel = computed(() => {
35240
35295
  var _a25, _b25;
@@ -35253,12 +35308,14 @@ const _sfc_main$H = /* @__PURE__ */ defineComponent({
35253
35308
  });
35254
35309
  };
35255
35310
  return (_ctx, _cache) => {
35311
+ var _a25, _b25, _c;
35256
35312
  return openBlock(), createElementBlock("div", _hoisted_1$C, [
35257
35313
  createBaseVNode("div", _hoisted_2$t, [
35258
35314
  createBaseVNode("label", _hoisted_3$l, toDisplayString(label.value), 1),
35259
35315
  createBaseVNode("select", {
35316
+ id: "lupa-page-size-select-dropdown",
35260
35317
  class: "lupa-select-dropdown",
35261
- "aria-label": label.value,
35318
+ "aria-label": (_c = (_b25 = (_a25 = unref(ariaLabels)) == null ? void 0 : _a25.pageSizeSelect) != null ? _b25 : label.value) != null ? _c : "Select page size",
35262
35319
  "data-cy": "lupa-page-size-select-dropdown",
35263
35320
  onChange: handleSelect,
35264
35321
  ref_key: "select",
@@ -35281,7 +35338,10 @@ const _hoisted_1$B = {
35281
35338
  class: "lupa-search-results-sort"
35282
35339
  };
35283
35340
  const _hoisted_2$s = { id: "lupa-select" };
35284
- const _hoisted_3$k = { class: "lupa-select-label" };
35341
+ const _hoisted_3$k = {
35342
+ class: "lupa-select-label",
35343
+ for: "lupa-sort-select-dropdown"
35344
+ };
35285
35345
  const _hoisted_4$c = ["aria-label"];
35286
35346
  const _hoisted_5$9 = ["value"];
35287
35347
  const _sfc_main$G = /* @__PURE__ */ defineComponent({
@@ -35295,6 +35355,7 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
35295
35355
  const paramStore = useParamsStore();
35296
35356
  const optionStore = useOptionsStore();
35297
35357
  const { sort } = storeToRefs(paramStore);
35358
+ const { ariaLabels } = storeToRefs(optionStore);
35298
35359
  const selectedKey = ref("");
35299
35360
  const previousKey = ref("");
35300
35361
  const sortItems = computed(() => {
@@ -35333,12 +35394,14 @@ const _sfc_main$G = /* @__PURE__ */ defineComponent({
35333
35394
  previousKey.value = selectedKey.value;
35334
35395
  };
35335
35396
  return (_ctx, _cache) => {
35397
+ var _a25, _b25;
35336
35398
  return openBlock(), createElementBlock("div", _hoisted_1$B, [
35337
35399
  createBaseVNode("div", _hoisted_2$s, [
35338
35400
  createBaseVNode("label", _hoisted_3$k, toDisplayString(_ctx.options.label), 1),
35339
35401
  withDirectives(createBaseVNode("select", {
35402
+ id: "lupa-sort-select-dropdown",
35340
35403
  class: "lupa-select-dropdown",
35341
- "aria-label": _ctx.options.label,
35404
+ "aria-label": (_b25 = (_a25 = unref(ariaLabels)) == null ? void 0 : _a25.sortBySelect) != null ? _b25 : _ctx.options.label,
35342
35405
  "data-cy": "lupa-sort-select-dropdown",
35343
35406
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedKey.value = $event),
35344
35407
  onChange: handleSelect,
@@ -35837,6 +35900,13 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
35837
35900
  const hasLink = computed(() => {
35838
35901
  return Boolean(props.link && props.options.link);
35839
35902
  });
35903
+ const addToCartButtonClass = computed(() => {
35904
+ return {
35905
+ [props.options.className]: Boolean(props.options.className),
35906
+ "lupa-add-to-cart-loading": loading.value,
35907
+ "lupa-add-to-cart": !loading.value
35908
+ };
35909
+ });
35840
35910
  const handleClick = (e2) => __async2(null, null, function* () {
35841
35911
  if (productCardIsClickable.value && !hasLink.value) {
35842
35912
  e2.preventDefault();
@@ -35857,7 +35927,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
35857
35927
  createBaseVNode("div", _hoisted_2$o, [
35858
35928
  hasLink.value ? (openBlock(), createElementBlock("button", mergeProps({
35859
35929
  key: 0,
35860
- class: loading.value ? "lupa-add-to-cart-loading" : "lupa-add-to-cart",
35930
+ class: addToCartButtonClass.value,
35861
35931
  "data-cy": "lupa-add-to-cart",
35862
35932
  disabled: !inStockValue.value || loading.value
35863
35933
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
@@ -35865,7 +35935,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
35865
35935
  ], 16, _hoisted_3$g)) : (openBlock(), createElementBlock("button", mergeProps({
35866
35936
  key: 1,
35867
35937
  id: id.value,
35868
- class: loading.value ? "lupa-add-to-cart-loading" : "lupa-add-to-cart",
35938
+ class: addToCartButtonClass.value,
35869
35939
  "data-cy": "lupa-add-to-cart",
35870
35940
  disabled: !inStockValue.value || loading.value
35871
35941
  }, _ctx.dynamicAttributes, {
@@ -39658,6 +39728,10 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
39658
39728
  const itemId = computed(() => {
39659
39729
  return typeof props.options.itemId === "string" || typeof props.options.itemId === "number" || Array.isArray(props.options.itemId) ? props.options.itemId : extractValue(props.options.itemId);
39660
39730
  });
39731
+ const wrapAround = computed(() => {
39732
+ var _a25, _b25;
39733
+ return (_b25 = (_a25 = carouselOptions.value) == null ? void 0 : _a25.wrapAround) != null ? _b25 : true;
39734
+ });
39661
39735
  const loadLupaRecommendations = () => __async2(null, null, function* () {
39662
39736
  var _a25, _b25;
39663
39737
  recommendationsType.value = "recommendations_lupasearch";
@@ -39692,7 +39766,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
39692
39766
  hasRecommendations.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
39693
39767
  title.value ? (openBlock(), createElementBlock("h2", _hoisted_1$9, toDisplayString(title.value), 1)) : createCommentVNode("", true),
39694
39768
  !loading.value ? (openBlock(), createElementBlock("div", _hoisted_2$6, [
39695
- layoutType.value === "carousel" ? (openBlock(), createBlock(unref(Carousel), mergeProps({ key: 0 }, carouselOptions.value, { "wrap-around": true }), {
39769
+ layoutType.value === "carousel" ? (openBlock(), createBlock(unref(Carousel), mergeProps({ key: 0 }, carouselOptions.value, { "wrap-around": wrapAround.value }), {
39696
39770
  addons: withCtx(() => [
39697
39771
  createVNode(unref(Navigation))
39698
39772
  ]),
@@ -39715,7 +39789,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
39715
39789
  }), 128))
39716
39790
  ]),
39717
39791
  _: 1
39718
- }, 16)) : (openBlock(), createElementBlock("div", _hoisted_3$3, [
39792
+ }, 16, ["wrap-around"])) : (openBlock(), createElementBlock("div", _hoisted_3$3, [
39719
39793
  (openBlock(true), createElementBlock(Fragment, null, renderList(recommendations2.value, (product, index) => {
39720
39794
  return openBlock(), createBlock(_sfc_main$t, {
39721
39795
  style: normalizeStyle(columnSize.value),
@@ -46454,8 +46528,7 @@ const DEFAULT_OPTIONS_RESULTS = {
46454
46528
  links: {
46455
46529
  details: "/{id}"
46456
46530
  },
46457
- elements: [],
46458
- breadcrumbs: [{ label: "Main Page", link: "/" }, { label: "Search: {1}" }]
46531
+ elements: []
46459
46532
  };
46460
46533
  const _sfc_main$3 = /* @__PURE__ */ defineComponent({
46461
46534
  __name: "SearchResultsEntry",