@getlupa/vue 0.22.0 → 0.22.2

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.
@@ -12905,6 +12905,18 @@ const useParamsStore = /* @__PURE__ */ defineStore("params", () => {
12905
12905
  params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
12906
12906
  searchString.value = url.search;
12907
12907
  };
12908
+ const getPageUrlWithNewParams = ({
12909
+ params: newParams,
12910
+ paramsToRemove,
12911
+ encode: encode2 = true,
12912
+ searchResultsLink: searchResultsLink2
12913
+ }) => {
12914
+ const url = getPageUrl(searchResultsLink2);
12915
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
12916
+ removeParams(url, paramsToRemove);
12917
+ newParams.forEach((p2) => appendParam(url, p2, encode2));
12918
+ return url.search;
12919
+ };
12908
12920
  const removeParameters = ({
12909
12921
  paramsToRemove,
12910
12922
  save = true
@@ -13042,6 +13054,7 @@ const useParamsStore = /* @__PURE__ */ defineStore("params", () => {
13042
13054
  sortParams,
13043
13055
  lastChangedParams,
13044
13056
  skipFacetReload,
13057
+ getPageUrlWithNewParams,
13045
13058
  add,
13046
13059
  removeAllFilters,
13047
13060
  removeParameters,
@@ -13516,7 +13529,7 @@ const _hoisted_1$1l = {
13516
13529
  };
13517
13530
  const _hoisted_2$W = { class: "lupa-dialog-content" };
13518
13531
  const _hoisted_3$E = { class: "lupa-listening-text" };
13519
- const _hoisted_4$v = { class: "lupa-mic-button-wrapper" };
13532
+ const _hoisted_4$u = { class: "lupa-mic-button-wrapper" };
13520
13533
  const _hoisted_5$l = ["aria-label"];
13521
13534
  const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13522
13535
  __name: "VoiceSearchDialog",
@@ -13630,7 +13643,7 @@ const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13630
13643
  }),
13631
13644
  vue.createElementVNode("div", _hoisted_2$W, [
13632
13645
  vue.createElementVNode("p", _hoisted_3$E, vue.toDisplayString(description.value), 1),
13633
- vue.createElementVNode("div", _hoisted_4$v, [
13646
+ vue.createElementVNode("div", _hoisted_4$u, [
13634
13647
  vue.createElementVNode("button", {
13635
13648
  class: vue.normalizeClass(["lupa-mic-button", { recording: vue.unref(isRecording) }]),
13636
13649
  onClick: handleRecordingButtonClick,
@@ -13655,7 +13668,7 @@ const _sfc_main$1z = /* @__PURE__ */ vue.defineComponent({
13655
13668
  const _hoisted_1$1k = { id: "lupa-search-box-input-container" };
13656
13669
  const _hoisted_2$V = { class: "lupa-input-clear" };
13657
13670
  const _hoisted_3$D = { id: "lupa-search-box-input" };
13658
- const _hoisted_4$u = ["value"];
13671
+ const _hoisted_4$t = ["value"];
13659
13672
  const _hoisted_5$k = ["aria-label", "placeholder"];
13660
13673
  const _hoisted_6$8 = {
13661
13674
  key: 0,
@@ -13808,7 +13821,7 @@ const _sfc_main$1y = /* @__PURE__ */ vue.defineComponent({
13808
13821
  "aria-hidden": "true",
13809
13822
  value: showHint.value ? suggestedValue.value.item.suggestion : "",
13810
13823
  disabled: ""
13811
- }, null, 8, _hoisted_4$u),
13824
+ }, null, 8, _hoisted_4$t),
13812
13825
  vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
13813
13826
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event)
13814
13827
  }, inputAttributes.value, {
@@ -14058,7 +14071,7 @@ const _hoisted_3$C = {
14058
14071
  class: "lupa-suggestion-facet",
14059
14072
  "data-cy": "lupa-suggestion-facet"
14060
14073
  };
14061
- const _hoisted_4$t = {
14074
+ const _hoisted_4$s = {
14062
14075
  class: "lupa-suggestion-facet-label",
14063
14076
  "data-cy": "lupa-suggestion-facet-label"
14064
14077
  };
@@ -14105,7 +14118,7 @@ const _sfc_main$1t = /* @__PURE__ */ vue.defineComponent({
14105
14118
  innerHTML: _ctx.suggestion.displayHighlight
14106
14119
  }, null, 8, _hoisted_1$1g)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$T, vue.toDisplayString(_ctx.suggestion.display), 1)),
14107
14120
  _ctx.suggestion.facet ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$C, [
14108
- vue.createElementVNode("span", _hoisted_4$t, vue.toDisplayString(facetLabel.value), 1),
14121
+ vue.createElementVNode("span", _hoisted_4$s, vue.toDisplayString(facetLabel.value), 1),
14109
14122
  vue.createElementVNode("span", _hoisted_5$j, vue.toDisplayString(_ctx.suggestion.facet.title), 1)
14110
14123
  ])) : vue.createCommentVNode("", true)
14111
14124
  ]);
@@ -23903,7 +23916,7 @@ const _sfc_main$1l = /* @__PURE__ */ vue.defineComponent({
23903
23916
  const _hoisted_1$1a = ["innerHTML"];
23904
23917
  const _hoisted_2$P = { key: 0 };
23905
23918
  const _hoisted_3$B = { key: 1 };
23906
- const _hoisted_4$s = { class: "lupa-search-box-custom-label" };
23919
+ const _hoisted_4$r = { class: "lupa-search-box-custom-label" };
23907
23920
  const _hoisted_5$i = { class: "lupa-search-box-custom-text" };
23908
23921
  const _sfc_main$1k = /* @__PURE__ */ vue.defineComponent({
23909
23922
  __name: "SearchBoxProductCustom",
@@ -23936,7 +23949,7 @@ const _sfc_main$1k = /* @__PURE__ */ vue.defineComponent({
23936
23949
  class: [className.value, "lupa-search-box-product-custom"]
23937
23950
  }, vue.toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
23938
23951
  !label.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$P, vue.toDisplayString(text.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$B, [
23939
- vue.createElementVNode("div", _hoisted_4$s, vue.toDisplayString(label.value), 1),
23952
+ vue.createElementVNode("div", _hoisted_4$r, vue.toDisplayString(label.value), 1),
23940
23953
  vue.createElementVNode("div", _hoisted_5$i, vue.toDisplayString(text.value), 1)
23941
23954
  ]))
23942
23955
  ], 16));
@@ -24287,7 +24300,7 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24287
24300
  const _hoisted_1$18 = { class: "lupa-search-box-add-to-cart-wrapper" };
24288
24301
  const _hoisted_2$O = { class: "lupa-search-box-product-addtocart" };
24289
24302
  const _hoisted_3$A = ["disabled"];
24290
- const _hoisted_4$r = ["href"];
24303
+ const _hoisted_4$q = ["href"];
24291
24304
  const _hoisted_5$h = ["disabled"];
24292
24305
  const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
24293
24306
  __name: "SearchBoxProductAddToCart",
@@ -24343,7 +24356,7 @@ const _sfc_main$1i = /* @__PURE__ */ vue.defineComponent({
24343
24356
  "data-cy": "lupa-add-to-cart",
24344
24357
  disabled: !inStockValue.value || loading.value
24345
24358
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
24346
- vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$r)
24359
+ vue.createElementVNode("a", { href: _ctx.link }, vue.toDisplayString(label.value), 9, _hoisted_4$q)
24347
24360
  ], 16, _hoisted_3$A)) : (vue.openBlock(), vue.createElementBlock("button", vue.mergeProps({
24348
24361
  key: 1,
24349
24362
  onClick: vue.withModifiers(handleClick, ["stop", "prevent"]),
@@ -24463,7 +24476,7 @@ const _sfc_main$1h = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
24463
24476
  const _hoisted_1$16 = { class: "lupa-badge-title" };
24464
24477
  const _hoisted_2$N = ["src"];
24465
24478
  const _hoisted_3$z = { key: 1 };
24466
- const _hoisted_4$q = {
24479
+ const _hoisted_4$p = {
24467
24480
  key: 0,
24468
24481
  class: "lupa-badge-full-text"
24469
24482
  };
@@ -24507,7 +24520,7 @@ const _sfc_main$1g = /* @__PURE__ */ vue.defineComponent({
24507
24520
  }, null, 8, _hoisted_2$N)) : vue.createCommentVNode("", true),
24508
24521
  hasTitleText.value && showTitle.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$z, vue.toDisplayString(_ctx.badge.titleText), 1)) : vue.createCommentVNode("", true)
24509
24522
  ]),
24510
- hasAdditionalText.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$q, vue.toDisplayString(_ctx.badge.additionalText), 1)) : vue.createCommentVNode("", true)
24523
+ hasAdditionalText.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$p, vue.toDisplayString(_ctx.badge.additionalText), 1)) : vue.createCommentVNode("", true)
24511
24524
  ], 6);
24512
24525
  };
24513
24526
  }
@@ -25475,7 +25488,7 @@ const _hoisted_3$x = {
25475
25488
  key: 0,
25476
25489
  class: "lupa-panel-title lupa-panel-title-top-results"
25477
25490
  };
25478
- const _hoisted_4$p = {
25491
+ const _hoisted_4$o = {
25479
25492
  key: 1,
25480
25493
  class: "lupa-panel-title"
25481
25494
  };
@@ -25671,7 +25684,7 @@ const _sfc_main$14 = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadV
25671
25684
  "data-cy": "lupa-panel-" + panel.type + "-index"
25672
25685
  }, [
25673
25686
  ((_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),
25674
- ((_c = panel.labels) == null ? void 0 : _c.title) && showPanelTitle(panel) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$p, vue.toDisplayString((_d = panel.labels) == null ? void 0 : _d.title), 1)) : vue.createCommentVNode("", true),
25687
+ ((_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),
25675
25688
  panel.queryKey && canShowPanel(panel) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(getComponent(panel.type)), {
25676
25689
  key: 2,
25677
25690
  panel,
@@ -26185,7 +26198,7 @@ const _hoisted_3$w = {
26185
26198
  key: 1,
26186
26199
  "data-cy": "did-you-mean-label"
26187
26200
  };
26188
- const _hoisted_4$o = { key: 1 };
26201
+ const _hoisted_4$n = { key: 1 };
26189
26202
  const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26190
26203
  __name: "SearchResultsDidYouMean",
26191
26204
  props: {
@@ -26236,7 +26249,7 @@ const _sfc_main$12 = /* @__PURE__ */ vue.defineComponent({
26236
26249
  class: "lupa-did-you-mean lupa-highlighted-search-text",
26237
26250
  "data-cy": "did-you-mean-value",
26238
26251
  onClick: _cache[0] || (_cache[0] = ($event) => goToResults({ searchText: didYouMeanValue.value }))
26239
- }, vue.toDisplayString(didYouMeanValue.value) + " ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$o, vue.toDisplayString(label) + " ", 1))
26252
+ }, vue.toDisplayString(didYouMeanValue.value) + " ", 1)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$n, vue.toDisplayString(label) + " ", 1))
26240
26253
  ]);
26241
26254
  }), 128))
26242
26255
  ])) : vue.createCommentVNode("", true)
@@ -26286,7 +26299,7 @@ const _hoisted_3$v = {
26286
26299
  key: 1,
26287
26300
  class: "lupa-results-total-count"
26288
26301
  };
26289
- const _hoisted_4$n = { class: "lupa-results-total-count-number" };
26302
+ const _hoisted_4$m = { class: "lupa-results-total-count-number" };
26290
26303
  const _hoisted_5$f = ["innerHTML"];
26291
26304
  const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
26292
26305
  __name: "SearchResultsTitle",
@@ -26336,7 +26349,7 @@ const _sfc_main$10 = /* @__PURE__ */ vue.defineComponent({
26336
26349
  queryText.value && !searchResultsTitleTemplate.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$G, "'" + vue.toDisplayString(queryText.value) + "'", 1)) : vue.createCommentVNode("", true),
26337
26350
  showProductCount.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$v, [
26338
26351
  vue.createTextVNode("(" + vue.toDisplayString(searchResultsCountLabel.value), 1),
26339
- vue.createElementVNode("span", _hoisted_4$n, vue.toDisplayString(vue.unref(totalItems)), 1),
26352
+ vue.createElementVNode("span", _hoisted_4$m, vue.toDisplayString(vue.unref(totalItems)), 1),
26340
26353
  _cache[0] || (_cache[0] = vue.createTextVNode(")"))
26341
26354
  ])) : vue.createCommentVNode("", true)
26342
26355
  ])) : vue.createCommentVNode("", true),
@@ -26418,7 +26431,7 @@ const _hoisted_3$u = {
26418
26431
  key: 0,
26419
26432
  class: "filter-values"
26420
26433
  };
26421
- const _hoisted_4$m = { class: "lupa-current-filter-list" };
26434
+ const _hoisted_4$l = { class: "lupa-current-filter-list" };
26422
26435
  const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
26423
26436
  __name: "CurrentFilters",
26424
26437
  props: {
@@ -26510,7 +26523,7 @@ const _sfc_main$_ = /* @__PURE__ */ vue.defineComponent({
26510
26523
  }, null, 2)) : vue.createCommentVNode("", true)
26511
26524
  ]),
26512
26525
  !_ctx.expandable || isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$u, [
26513
- vue.createElementVNode("div", _hoisted_4$m, [
26526
+ vue.createElementVNode("div", _hoisted_4$l, [
26514
26527
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(currentDisplayFilters.value, (filter) => {
26515
26528
  return vue.openBlock(), vue.createBlock(_sfc_main$$, {
26516
26529
  key: filter.key + "_" + filter.value,
@@ -26579,7 +26592,7 @@ const _hoisted_1$R = {
26579
26592
  };
26580
26593
  const _hoisted_2$D = { class: "lupa-category-back" };
26581
26594
  const _hoisted_3$t = ["href"];
26582
- const _hoisted_4$l = ["href"];
26595
+ const _hoisted_4$k = ["href"];
26583
26596
  const _hoisted_5$e = { class: "lupa-child-category-list" };
26584
26597
  const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26585
26598
  __name: "CategoryFilter",
@@ -26686,7 +26699,7 @@ const _sfc_main$Y = /* @__PURE__ */ vue.defineComponent({
26686
26699
  href: parentUrlLink.value,
26687
26700
  class: vue.normalizeClass({ "lupa-title-category": !hasBackButton.value }),
26688
26701
  onClick: handleNavigationParent
26689
- }, vue.toDisplayString(parentTitle.value), 11, _hoisted_4$l)
26702
+ }, vue.toDisplayString(parentTitle.value), 11, _hoisted_4$k)
26690
26703
  ], 2),
26691
26704
  vue.createElementVNode("div", _hoisted_5$e, [
26692
26705
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(categoryChildren.value, (child) => {
@@ -26707,7 +26720,7 @@ const _hoisted_1$Q = {
26707
26720
  };
26708
26721
  const _hoisted_2$C = ["placeholder"];
26709
26722
  const _hoisted_3$s = { class: "lupa-terms-list" };
26710
- const _hoisted_4$k = ["onClick"];
26723
+ const _hoisted_4$j = ["onClick"];
26711
26724
  const _hoisted_5$d = { class: "lupa-term-checkbox-wrapper" };
26712
26725
  const _hoisted_6$7 = { class: "lupa-term-label" };
26713
26726
  const _hoisted_7$4 = {
@@ -26839,7 +26852,7 @@ const _sfc_main$X = /* @__PURE__ */ vue.defineComponent({
26839
26852
  vue.createElementVNode("span", _hoisted_6$7, vue.toDisplayString(getItemLabel(item)), 1),
26840
26853
  _ctx.options.showDocumentCount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_7$4, "(" + vue.toDisplayString(item.count) + ")", 1)) : vue.createCommentVNode("", true)
26841
26854
  ], 2)
26842
- ], 10, _hoisted_4$k);
26855
+ ], 10, _hoisted_4$j);
26843
26856
  }), 128))
26844
26857
  ]),
26845
26858
  displayShowMore.value ? (vue.openBlock(), vue.createElementBlock("div", {
@@ -27756,7 +27769,7 @@ const _hoisted_3$r = {
27756
27769
  key: 1,
27757
27770
  class: "lupa-stats-facet-summary-input"
27758
27771
  };
27759
- const _hoisted_4$j = { class: "lupa-stats-from" };
27772
+ const _hoisted_4$i = { class: "lupa-stats-from" };
27760
27773
  const _hoisted_5$c = {
27761
27774
  key: 0,
27762
27775
  class: "lupa-stats-range-label"
@@ -27994,7 +28007,7 @@ const _sfc_main$W = /* @__PURE__ */ vue.defineComponent({
27994
28007
  return (_ctx, _cache) => {
27995
28008
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$P, [
27996
28009
  !isInputVisible.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$B, vue.toDisplayString(statsSummary.value), 1)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$r, [
27997
- vue.createElementVNode("div", _hoisted_4$j, [
28010
+ vue.createElementVNode("div", _hoisted_4$i, [
27998
28011
  rangeLabelFrom.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$c, vue.toDisplayString(rangeLabelFrom.value), 1)) : vue.createCommentVNode("", true),
27999
28012
  vue.withDirectives(vue.createElementVNode("input", {
28000
28013
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
@@ -28063,7 +28076,7 @@ const _hoisted_3$q = {
28063
28076
  key: 0,
28064
28077
  class: "lupa-term-count"
28065
28078
  };
28066
- const _hoisted_4$i = {
28079
+ const _hoisted_4$h = {
28067
28080
  key: 0,
28068
28081
  class: "lupa-facet-level"
28069
28082
  };
@@ -28133,7 +28146,7 @@ const _sfc_main$V = /* @__PURE__ */ vue.defineComponent({
28133
28146
  _ctx.options.showDocumentCount ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$q, "(" + vue.toDisplayString(_ctx.item.count) + ")", 1)) : vue.createCommentVNode("", true)
28134
28147
  ], 2)
28135
28148
  ]),
28136
- showChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$i, [
28149
+ showChildren.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$h, [
28137
28150
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(treeItem.value.children, (itemChild) => {
28138
28151
  return vue.openBlock(), vue.createBlock(_component_HierarchyFacetLevel, {
28139
28152
  key: itemChild.title,
@@ -28681,7 +28694,7 @@ const _hoisted_1$I = {
28681
28694
  };
28682
28695
  const _hoisted_2$w = { class: "lupa-mobile-sidebar-content" };
28683
28696
  const _hoisted_3$o = { class: "lupa-sidebar-top" };
28684
- const _hoisted_4$h = { class: "lupa-sidebar-title" };
28697
+ const _hoisted_4$g = { class: "lupa-sidebar-title" };
28685
28698
  const _hoisted_5$b = {
28686
28699
  key: 0,
28687
28700
  class: "lupa-sidebar-filter-count"
@@ -28726,7 +28739,7 @@ const _sfc_main$O = /* @__PURE__ */ vue.defineComponent({
28726
28739
  }),
28727
28740
  vue.createElementVNode("div", _hoisted_2$w, [
28728
28741
  vue.createElementVNode("div", _hoisted_3$o, [
28729
- vue.createElementVNode("div", _hoisted_4$h, [
28742
+ vue.createElementVNode("div", _hoisted_4$g, [
28730
28743
  vue.createTextVNode(vue.toDisplayString(sidebarTitle.value) + " ", 1),
28731
28744
  isFilterCountVisible.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_5$b, vue.toDisplayString(vue.unref(currentFilterCount)), 1)) : vue.createCommentVNode("", true)
28732
28745
  ]),
@@ -28753,7 +28766,7 @@ const _hoisted_3$n = {
28753
28766
  key: 1,
28754
28767
  class: "lupa-search-results-breadcrumb-text"
28755
28768
  };
28756
- const _hoisted_4$g = { key: 2 };
28769
+ const _hoisted_4$f = { key: 2 };
28757
28770
  const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
28758
28771
  __name: "SearchResultsBreadcrumbs",
28759
28772
  props: {
@@ -28795,7 +28808,7 @@ const _sfc_main$N = /* @__PURE__ */ vue.defineComponent({
28795
28808
  return handleNavigation(e2, (_a26 = breadcrumb == null ? void 0 : breadcrumb.link) != null ? _a26 : "");
28796
28809
  }
28797
28810
  }, vue.toDisplayString(getLabel(breadcrumb.label)), 9, _hoisted_2$v)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$n, vue.toDisplayString(getLabel(breadcrumb.label)), 1)),
28798
- index < breadcrumbsValue.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$g, vue.toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : vue.createCommentVNode("", true)
28811
+ index < breadcrumbsValue.value.length - 1 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$f, vue.toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : vue.createCommentVNode("", true)
28799
28812
  ]);
28800
28813
  }), 128))
28801
28814
  ]);
@@ -28957,8 +28970,7 @@ const _hoisted_2$u = {
28957
28970
  key: 0,
28958
28971
  class: "lupa-page-number-separator"
28959
28972
  };
28960
- const _hoisted_3$m = ["onClick"];
28961
- const _hoisted_4$f = {
28973
+ const _hoisted_3$m = {
28962
28974
  key: 0,
28963
28975
  class: "lupa-page-number-separator"
28964
28976
  };
@@ -29025,7 +29037,24 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29025
29037
  timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
29026
29038
  };
29027
29039
  });
29028
- const handlePageChange = (page) => {
29040
+ const tagName = vue.computed(() => {
29041
+ return props.options.renderAsLinks ? "a" : "div";
29042
+ });
29043
+ const getPageUrlWithNewParams = (page) => {
29044
+ return paramStore.getPageUrlWithNewParams({
29045
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS.PAGE), value: page.toString() }]
29046
+ });
29047
+ };
29048
+ const getHref = (page) => {
29049
+ if (props.options.renderAsLinks) {
29050
+ return getPageUrlWithNewParams(page);
29051
+ }
29052
+ return null;
29053
+ };
29054
+ const handlePageChange = (e2, page) => {
29055
+ if (e2 && props.options.renderAsLinks) {
29056
+ e2.preventDefault();
29057
+ }
29029
29058
  if (page > 0) {
29030
29059
  paramStore.appendParams({
29031
29060
  params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS.PAGE), value: page.toString() }]
@@ -29039,46 +29068,78 @@ const _sfc_main$I = /* @__PURE__ */ vue.defineComponent({
29039
29068
  }
29040
29069
  };
29041
29070
  return (_ctx, _cache) => {
29071
+ var _a25;
29042
29072
  return showPagination.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$D, [
29043
- showBack.value ? (vue.openBlock(), vue.createElementBlock("div", {
29073
+ showBack.value ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29044
29074
  key: 0,
29045
29075
  class: vue.normalizeClass(firstPageLabel.value === "<" ? "lupa-page-arrow" : "lupa-show-less"),
29046
- onClick: _cache[0] || (_cache[0] = () => handlePageChange(_ctx.options.selectedPage - 1))
29047
- }, vue.toDisplayString(firstPageLabel.value), 3)) : vue.createCommentVNode("", true),
29076
+ href: getHref(_ctx.options.selectedPage - 1),
29077
+ onClick: _cache[0] || (_cache[0] = (e2) => handlePageChange(e2, _ctx.options.selectedPage - 1))
29078
+ }, {
29079
+ default: vue.withCtx(() => [
29080
+ vue.createTextVNode(vue.toDisplayString(firstPageLabel.value), 1)
29081
+ ]),
29082
+ _: 1
29083
+ }, 8, ["class", "href"])) : vue.createCommentVNode("", true),
29048
29084
  showFirstPage.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
29049
- vue.createElementVNode("div", {
29085
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29086
+ href: getHref(1),
29050
29087
  class: "lupa-page-number lupa-page-number-first",
29051
- onClick: _cache[1] || (_cache[1] = () => handlePageChange(1))
29052
- }, " 1 "),
29088
+ onClick: _cache[1] || (_cache[1] = (e2) => handlePageChange(e2, 1))
29089
+ }, {
29090
+ default: vue.withCtx(() => _cache[4] || (_cache[4] = [
29091
+ vue.createTextVNode(" 1 ")
29092
+ ])),
29093
+ _: 1,
29094
+ __: [4]
29095
+ }, 8, ["href"])),
29053
29096
  showFirstPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$u, "...")) : vue.createCommentVNode("", true)
29054
29097
  ], 64)) : vue.createCommentVNode("", true),
29055
29098
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(pages.value, (page) => {
29056
- return vue.openBlock(), vue.createElementBlock("div", {
29099
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29057
29100
  key: page,
29058
- onClick: () => handlePageChange(page),
29101
+ href: getHref(page),
29102
+ onClick: (e2) => handlePageChange(e2, page),
29059
29103
  class: vue.normalizeClass([
29060
29104
  "lupa-page-number",
29061
29105
  page === _ctx.options.selectedPage ? "lupa-page-number-selected" : ""
29062
29106
  ]),
29063
29107
  "data-cy": "lupa-page-number"
29064
- }, vue.toDisplayString(page), 11, _hoisted_3$m);
29108
+ }, {
29109
+ default: vue.withCtx(() => [
29110
+ vue.createTextVNode(vue.toDisplayString(page), 1)
29111
+ ]),
29112
+ _: 2
29113
+ }, 1032, ["href", "onClick", "class"]);
29065
29114
  }), 128)),
29066
29115
  showLastPage.value ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
29067
- showLastPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$f, "...")) : vue.createCommentVNode("", true),
29068
- vue.createElementVNode("div", {
29116
+ showLastPageSeparator.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$m, "...")) : vue.createCommentVNode("", true),
29117
+ (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29118
+ href: getHref((_a25 = lastPage.value) != null ? _a25 : 1),
29069
29119
  class: "lupa-page-number lupa-page-number-last",
29070
- onClick: _cache[2] || (_cache[2] = () => {
29071
- var _a25;
29072
- return handlePageChange((_a25 = lastPage.value) != null ? _a25 : 1);
29120
+ onClick: _cache[2] || (_cache[2] = (e2) => {
29121
+ var _a26;
29122
+ return handlePageChange(e2, (_a26 = lastPage.value) != null ? _a26 : 1);
29073
29123
  })
29074
- }, vue.toDisplayString(lastPage.value), 1)
29124
+ }, {
29125
+ default: vue.withCtx(() => [
29126
+ vue.createTextVNode(vue.toDisplayString(lastPage.value), 1)
29127
+ ]),
29128
+ _: 1
29129
+ }, 8, ["href"]))
29075
29130
  ], 64)) : vue.createCommentVNode("", true),
29076
- _ctx.options.selectedPage < _ctx.options.count ? (vue.openBlock(), vue.createElementBlock("div", {
29131
+ _ctx.options.selectedPage < _ctx.options.count ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
29077
29132
  key: 3,
29078
29133
  class: vue.normalizeClass(lastPageLabel.value === ">" ? "lupa-page-arrow" : "lupa-show-more"),
29134
+ href: getHref(_ctx.options.selectedPage + 1),
29079
29135
  "data-cy": "lupa-show-more",
29080
- onClick: _cache[3] || (_cache[3] = () => handlePageChange(_ctx.options.selectedPage + 1))
29081
- }, vue.toDisplayString(lastPageLabel.value), 3)) : vue.createCommentVNode("", true)
29136
+ onClick: _cache[3] || (_cache[3] = (e2) => handlePageChange(e2, _ctx.options.selectedPage + 1))
29137
+ }, {
29138
+ default: vue.withCtx(() => [
29139
+ vue.createTextVNode(vue.toDisplayString(lastPageLabel.value), 1)
29140
+ ]),
29141
+ _: 1
29142
+ }, 8, ["class", "href"])) : vue.createCommentVNode("", true)
29082
29143
  ])) : vue.createCommentVNode("", true);
29083
29144
  };
29084
29145
  }
@@ -29312,6 +29373,7 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29312
29373
  }
29313
29374
  });
29314
29375
  const paginationOptions = vue.computed(() => {
29376
+ var _a25;
29315
29377
  const pageSelect = optionsValue.value.pagination.pageSelection;
29316
29378
  return {
29317
29379
  pageSize: {
@@ -29322,7 +29384,8 @@ const _sfc_main$F = /* @__PURE__ */ vue.defineComponent({
29322
29384
  count: getPageCount(searchResult.value.total, limit.value),
29323
29385
  selectedPage: page.value,
29324
29386
  display: pageSelect.display,
29325
- displayMobile: pageSelect.displayMobile
29387
+ displayMobile: pageSelect.displayMobile,
29388
+ renderAsLinks: (_a25 = pageSelect.renderAsLinks) != null ? _a25 : false
29326
29389
  },
29327
29390
  labels: optionsValue.value.labels
29328
29391
  };
@@ -12903,6 +12903,18 @@ const useParamsStore = /* @__PURE__ */ defineStore("params", () => {
12903
12903
  params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
12904
12904
  searchString.value = url.search;
12905
12905
  };
12906
+ const getPageUrlWithNewParams = ({
12907
+ params: newParams,
12908
+ paramsToRemove,
12909
+ encode: encode2 = true,
12910
+ searchResultsLink: searchResultsLink2
12911
+ }) => {
12912
+ const url = getPageUrl(searchResultsLink2);
12913
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
12914
+ removeParams(url, paramsToRemove);
12915
+ newParams.forEach((p2) => appendParam(url, p2, encode2));
12916
+ return url.search;
12917
+ };
12906
12918
  const removeParameters = ({
12907
12919
  paramsToRemove,
12908
12920
  save = true
@@ -13040,6 +13052,7 @@ const useParamsStore = /* @__PURE__ */ defineStore("params", () => {
13040
13052
  sortParams,
13041
13053
  lastChangedParams,
13042
13054
  skipFacetReload,
13055
+ getPageUrlWithNewParams,
13043
13056
  add,
13044
13057
  removeAllFilters,
13045
13058
  removeParameters,
@@ -13514,7 +13527,7 @@ const _hoisted_1$1l = {
13514
13527
  };
13515
13528
  const _hoisted_2$W = { class: "lupa-dialog-content" };
13516
13529
  const _hoisted_3$E = { class: "lupa-listening-text" };
13517
- const _hoisted_4$v = { class: "lupa-mic-button-wrapper" };
13530
+ const _hoisted_4$u = { class: "lupa-mic-button-wrapper" };
13518
13531
  const _hoisted_5$l = ["aria-label"];
13519
13532
  const _sfc_main$1z = /* @__PURE__ */ defineComponent({
13520
13533
  __name: "VoiceSearchDialog",
@@ -13628,7 +13641,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
13628
13641
  }),
13629
13642
  createElementVNode("div", _hoisted_2$W, [
13630
13643
  createElementVNode("p", _hoisted_3$E, toDisplayString(description.value), 1),
13631
- createElementVNode("div", _hoisted_4$v, [
13644
+ createElementVNode("div", _hoisted_4$u, [
13632
13645
  createElementVNode("button", {
13633
13646
  class: normalizeClass(["lupa-mic-button", { recording: unref(isRecording) }]),
13634
13647
  onClick: handleRecordingButtonClick,
@@ -13653,7 +13666,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
13653
13666
  const _hoisted_1$1k = { id: "lupa-search-box-input-container" };
13654
13667
  const _hoisted_2$V = { class: "lupa-input-clear" };
13655
13668
  const _hoisted_3$D = { id: "lupa-search-box-input" };
13656
- const _hoisted_4$u = ["value"];
13669
+ const _hoisted_4$t = ["value"];
13657
13670
  const _hoisted_5$k = ["aria-label", "placeholder"];
13658
13671
  const _hoisted_6$8 = {
13659
13672
  key: 0,
@@ -13806,7 +13819,7 @@ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
13806
13819
  "aria-hidden": "true",
13807
13820
  value: showHint.value ? suggestedValue.value.item.suggestion : "",
13808
13821
  disabled: ""
13809
- }, null, 8, _hoisted_4$u),
13822
+ }, null, 8, _hoisted_4$t),
13810
13823
  withDirectives(createElementVNode("input", mergeProps({
13811
13824
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event)
13812
13825
  }, inputAttributes.value, {
@@ -14056,7 +14069,7 @@ const _hoisted_3$C = {
14056
14069
  class: "lupa-suggestion-facet",
14057
14070
  "data-cy": "lupa-suggestion-facet"
14058
14071
  };
14059
- const _hoisted_4$t = {
14072
+ const _hoisted_4$s = {
14060
14073
  class: "lupa-suggestion-facet-label",
14061
14074
  "data-cy": "lupa-suggestion-facet-label"
14062
14075
  };
@@ -14103,7 +14116,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
14103
14116
  innerHTML: _ctx.suggestion.displayHighlight
14104
14117
  }, null, 8, _hoisted_1$1g)) : (openBlock(), createElementBlock("div", _hoisted_2$T, toDisplayString(_ctx.suggestion.display), 1)),
14105
14118
  _ctx.suggestion.facet ? (openBlock(), createElementBlock("div", _hoisted_3$C, [
14106
- createElementVNode("span", _hoisted_4$t, toDisplayString(facetLabel.value), 1),
14119
+ createElementVNode("span", _hoisted_4$s, toDisplayString(facetLabel.value), 1),
14107
14120
  createElementVNode("span", _hoisted_5$j, toDisplayString(_ctx.suggestion.facet.title), 1)
14108
14121
  ])) : createCommentVNode("", true)
14109
14122
  ]);
@@ -23901,7 +23914,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
23901
23914
  const _hoisted_1$1a = ["innerHTML"];
23902
23915
  const _hoisted_2$P = { key: 0 };
23903
23916
  const _hoisted_3$B = { key: 1 };
23904
- const _hoisted_4$s = { class: "lupa-search-box-custom-label" };
23917
+ const _hoisted_4$r = { class: "lupa-search-box-custom-label" };
23905
23918
  const _hoisted_5$i = { class: "lupa-search-box-custom-text" };
23906
23919
  const _sfc_main$1k = /* @__PURE__ */ defineComponent({
23907
23920
  __name: "SearchBoxProductCustom",
@@ -23934,7 +23947,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
23934
23947
  class: [className.value, "lupa-search-box-product-custom"]
23935
23948
  }, toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
23936
23949
  !label.value ? (openBlock(), createElementBlock("div", _hoisted_2$P, toDisplayString(text.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$B, [
23937
- createElementVNode("div", _hoisted_4$s, toDisplayString(label.value), 1),
23950
+ createElementVNode("div", _hoisted_4$r, toDisplayString(label.value), 1),
23938
23951
  createElementVNode("div", _hoisted_5$i, toDisplayString(text.value), 1)
23939
23952
  ]))
23940
23953
  ], 16));
@@ -24285,7 +24298,7 @@ const useSearchResultStore = /* @__PURE__ */ defineStore("searchResult", () => {
24285
24298
  const _hoisted_1$18 = { class: "lupa-search-box-add-to-cart-wrapper" };
24286
24299
  const _hoisted_2$O = { class: "lupa-search-box-product-addtocart" };
24287
24300
  const _hoisted_3$A = ["disabled"];
24288
- const _hoisted_4$r = ["href"];
24301
+ const _hoisted_4$q = ["href"];
24289
24302
  const _hoisted_5$h = ["disabled"];
24290
24303
  const _sfc_main$1i = /* @__PURE__ */ defineComponent({
24291
24304
  __name: "SearchBoxProductAddToCart",
@@ -24341,7 +24354,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
24341
24354
  "data-cy": "lupa-add-to-cart",
24342
24355
  disabled: !inStockValue.value || loading.value
24343
24356
  }, _ctx.dynamicAttributes, { onClick: handleClick }), [
24344
- createElementVNode("a", { href: _ctx.link }, toDisplayString(label.value), 9, _hoisted_4$r)
24357
+ createElementVNode("a", { href: _ctx.link }, toDisplayString(label.value), 9, _hoisted_4$q)
24345
24358
  ], 16, _hoisted_3$A)) : (openBlock(), createElementBlock("button", mergeProps({
24346
24359
  key: 1,
24347
24360
  onClick: withModifiers(handleClick, ["stop", "prevent"]),
@@ -24461,7 +24474,7 @@ const _sfc_main$1h = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValue
24461
24474
  const _hoisted_1$16 = { class: "lupa-badge-title" };
24462
24475
  const _hoisted_2$N = ["src"];
24463
24476
  const _hoisted_3$z = { key: 1 };
24464
- const _hoisted_4$q = {
24477
+ const _hoisted_4$p = {
24465
24478
  key: 0,
24466
24479
  class: "lupa-badge-full-text"
24467
24480
  };
@@ -24505,7 +24518,7 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
24505
24518
  }, null, 8, _hoisted_2$N)) : createCommentVNode("", true),
24506
24519
  hasTitleText.value && showTitle.value ? (openBlock(), createElementBlock("span", _hoisted_3$z, toDisplayString(_ctx.badge.titleText), 1)) : createCommentVNode("", true)
24507
24520
  ]),
24508
- hasAdditionalText.value ? (openBlock(), createElementBlock("span", _hoisted_4$q, toDisplayString(_ctx.badge.additionalText), 1)) : createCommentVNode("", true)
24521
+ hasAdditionalText.value ? (openBlock(), createElementBlock("span", _hoisted_4$p, toDisplayString(_ctx.badge.additionalText), 1)) : createCommentVNode("", true)
24509
24522
  ], 6);
24510
24523
  };
24511
24524
  }
@@ -25473,7 +25486,7 @@ const _hoisted_3$x = {
25473
25486
  key: 0,
25474
25487
  class: "lupa-panel-title lupa-panel-title-top-results"
25475
25488
  };
25476
- const _hoisted_4$p = {
25489
+ const _hoisted_4$o = {
25477
25490
  key: 1,
25478
25491
  class: "lupa-panel-title"
25479
25492
  };
@@ -25669,7 +25682,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValue
25669
25682
  "data-cy": "lupa-panel-" + panel.type + "-index"
25670
25683
  }, [
25671
25684
  ((_a25 = panel.labels) == null ? void 0 : _a25.topResultsTitle) && showTopResultsPanelTitle(panel.queryKey) ? (openBlock(), createElementBlock("div", _hoisted_3$x, toDisplayString((_b25 = panel.labels) == null ? void 0 : _b25.topResultsTitle), 1)) : createCommentVNode("", true),
25672
- ((_c = panel.labels) == null ? void 0 : _c.title) && showPanelTitle(panel) ? (openBlock(), createElementBlock("div", _hoisted_4$p, toDisplayString((_d = panel.labels) == null ? void 0 : _d.title), 1)) : createCommentVNode("", true),
25685
+ ((_c = panel.labels) == null ? void 0 : _c.title) && showPanelTitle(panel) ? (openBlock(), createElementBlock("div", _hoisted_4$o, toDisplayString((_d = panel.labels) == null ? void 0 : _d.title), 1)) : createCommentVNode("", true),
25673
25686
  panel.queryKey && canShowPanel(panel) ? (openBlock(), createBlock(resolveDynamicComponent(getComponent(panel.type)), {
25674
25687
  key: 2,
25675
25688
  panel,
@@ -26183,7 +26196,7 @@ const _hoisted_3$w = {
26183
26196
  key: 1,
26184
26197
  "data-cy": "did-you-mean-label"
26185
26198
  };
26186
- const _hoisted_4$o = { key: 1 };
26199
+ const _hoisted_4$n = { key: 1 };
26187
26200
  const _sfc_main$12 = /* @__PURE__ */ defineComponent({
26188
26201
  __name: "SearchResultsDidYouMean",
26189
26202
  props: {
@@ -26234,7 +26247,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
26234
26247
  class: "lupa-did-you-mean lupa-highlighted-search-text",
26235
26248
  "data-cy": "did-you-mean-value",
26236
26249
  onClick: _cache[0] || (_cache[0] = ($event) => goToResults({ searchText: didYouMeanValue.value }))
26237
- }, toDisplayString(didYouMeanValue.value) + " ", 1)) : (openBlock(), createElementBlock("span", _hoisted_4$o, toDisplayString(label) + " ", 1))
26250
+ }, toDisplayString(didYouMeanValue.value) + " ", 1)) : (openBlock(), createElementBlock("span", _hoisted_4$n, toDisplayString(label) + " ", 1))
26238
26251
  ]);
26239
26252
  }), 128))
26240
26253
  ])) : createCommentVNode("", true)
@@ -26284,7 +26297,7 @@ const _hoisted_3$v = {
26284
26297
  key: 1,
26285
26298
  class: "lupa-results-total-count"
26286
26299
  };
26287
- const _hoisted_4$n = { class: "lupa-results-total-count-number" };
26300
+ const _hoisted_4$m = { class: "lupa-results-total-count-number" };
26288
26301
  const _hoisted_5$f = ["innerHTML"];
26289
26302
  const _sfc_main$10 = /* @__PURE__ */ defineComponent({
26290
26303
  __name: "SearchResultsTitle",
@@ -26334,7 +26347,7 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
26334
26347
  queryText.value && !searchResultsTitleTemplate.value ? (openBlock(), createElementBlock("span", _hoisted_2$G, "'" + toDisplayString(queryText.value) + "'", 1)) : createCommentVNode("", true),
26335
26348
  showProductCount.value ? (openBlock(), createElementBlock("span", _hoisted_3$v, [
26336
26349
  createTextVNode("(" + toDisplayString(searchResultsCountLabel.value), 1),
26337
- createElementVNode("span", _hoisted_4$n, toDisplayString(unref(totalItems)), 1),
26350
+ createElementVNode("span", _hoisted_4$m, toDisplayString(unref(totalItems)), 1),
26338
26351
  _cache[0] || (_cache[0] = createTextVNode(")"))
26339
26352
  ])) : createCommentVNode("", true)
26340
26353
  ])) : createCommentVNode("", true),
@@ -26416,7 +26429,7 @@ const _hoisted_3$u = {
26416
26429
  key: 0,
26417
26430
  class: "filter-values"
26418
26431
  };
26419
- const _hoisted_4$m = { class: "lupa-current-filter-list" };
26432
+ const _hoisted_4$l = { class: "lupa-current-filter-list" };
26420
26433
  const _sfc_main$_ = /* @__PURE__ */ defineComponent({
26421
26434
  __name: "CurrentFilters",
26422
26435
  props: {
@@ -26508,7 +26521,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
26508
26521
  }, null, 2)) : createCommentVNode("", true)
26509
26522
  ]),
26510
26523
  !_ctx.expandable || isOpen.value ? (openBlock(), createElementBlock("div", _hoisted_3$u, [
26511
- createElementVNode("div", _hoisted_4$m, [
26524
+ createElementVNode("div", _hoisted_4$l, [
26512
26525
  (openBlock(true), createElementBlock(Fragment, null, renderList(currentDisplayFilters.value, (filter) => {
26513
26526
  return openBlock(), createBlock(_sfc_main$$, {
26514
26527
  key: filter.key + "_" + filter.value,
@@ -26577,7 +26590,7 @@ const _hoisted_1$R = {
26577
26590
  };
26578
26591
  const _hoisted_2$D = { class: "lupa-category-back" };
26579
26592
  const _hoisted_3$t = ["href"];
26580
- const _hoisted_4$l = ["href"];
26593
+ const _hoisted_4$k = ["href"];
26581
26594
  const _hoisted_5$e = { class: "lupa-child-category-list" };
26582
26595
  const _sfc_main$Y = /* @__PURE__ */ defineComponent({
26583
26596
  __name: "CategoryFilter",
@@ -26684,7 +26697,7 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
26684
26697
  href: parentUrlLink.value,
26685
26698
  class: normalizeClass({ "lupa-title-category": !hasBackButton.value }),
26686
26699
  onClick: handleNavigationParent
26687
- }, toDisplayString(parentTitle.value), 11, _hoisted_4$l)
26700
+ }, toDisplayString(parentTitle.value), 11, _hoisted_4$k)
26688
26701
  ], 2),
26689
26702
  createElementVNode("div", _hoisted_5$e, [
26690
26703
  (openBlock(true), createElementBlock(Fragment, null, renderList(categoryChildren.value, (child) => {
@@ -26705,7 +26718,7 @@ const _hoisted_1$Q = {
26705
26718
  };
26706
26719
  const _hoisted_2$C = ["placeholder"];
26707
26720
  const _hoisted_3$s = { class: "lupa-terms-list" };
26708
- const _hoisted_4$k = ["onClick"];
26721
+ const _hoisted_4$j = ["onClick"];
26709
26722
  const _hoisted_5$d = { class: "lupa-term-checkbox-wrapper" };
26710
26723
  const _hoisted_6$7 = { class: "lupa-term-label" };
26711
26724
  const _hoisted_7$4 = {
@@ -26837,7 +26850,7 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
26837
26850
  createElementVNode("span", _hoisted_6$7, toDisplayString(getItemLabel(item)), 1),
26838
26851
  _ctx.options.showDocumentCount ? (openBlock(), createElementBlock("span", _hoisted_7$4, "(" + toDisplayString(item.count) + ")", 1)) : createCommentVNode("", true)
26839
26852
  ], 2)
26840
- ], 10, _hoisted_4$k);
26853
+ ], 10, _hoisted_4$j);
26841
26854
  }), 128))
26842
26855
  ]),
26843
26856
  displayShowMore.value ? (openBlock(), createElementBlock("div", {
@@ -27754,7 +27767,7 @@ const _hoisted_3$r = {
27754
27767
  key: 1,
27755
27768
  class: "lupa-stats-facet-summary-input"
27756
27769
  };
27757
- const _hoisted_4$j = { class: "lupa-stats-from" };
27770
+ const _hoisted_4$i = { class: "lupa-stats-from" };
27758
27771
  const _hoisted_5$c = {
27759
27772
  key: 0,
27760
27773
  class: "lupa-stats-range-label"
@@ -27992,7 +28005,7 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
27992
28005
  return (_ctx, _cache) => {
27993
28006
  return openBlock(), createElementBlock("div", _hoisted_1$P, [
27994
28007
  !isInputVisible.value ? (openBlock(), createElementBlock("div", _hoisted_2$B, toDisplayString(statsSummary.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$r, [
27995
- createElementVNode("div", _hoisted_4$j, [
28008
+ createElementVNode("div", _hoisted_4$i, [
27996
28009
  rangeLabelFrom.value ? (openBlock(), createElementBlock("div", _hoisted_5$c, toDisplayString(rangeLabelFrom.value), 1)) : createCommentVNode("", true),
27997
28010
  withDirectives(createElementVNode("input", {
27998
28011
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
@@ -28061,7 +28074,7 @@ const _hoisted_3$q = {
28061
28074
  key: 0,
28062
28075
  class: "lupa-term-count"
28063
28076
  };
28064
- const _hoisted_4$i = {
28077
+ const _hoisted_4$h = {
28065
28078
  key: 0,
28066
28079
  class: "lupa-facet-level"
28067
28080
  };
@@ -28131,7 +28144,7 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
28131
28144
  _ctx.options.showDocumentCount ? (openBlock(), createElementBlock("span", _hoisted_3$q, "(" + toDisplayString(_ctx.item.count) + ")", 1)) : createCommentVNode("", true)
28132
28145
  ], 2)
28133
28146
  ]),
28134
- showChildren.value ? (openBlock(), createElementBlock("div", _hoisted_4$i, [
28147
+ showChildren.value ? (openBlock(), createElementBlock("div", _hoisted_4$h, [
28135
28148
  (openBlock(true), createElementBlock(Fragment, null, renderList(treeItem.value.children, (itemChild) => {
28136
28149
  return openBlock(), createBlock(_component_HierarchyFacetLevel, {
28137
28150
  key: itemChild.title,
@@ -28679,7 +28692,7 @@ const _hoisted_1$I = {
28679
28692
  };
28680
28693
  const _hoisted_2$w = { class: "lupa-mobile-sidebar-content" };
28681
28694
  const _hoisted_3$o = { class: "lupa-sidebar-top" };
28682
- const _hoisted_4$h = { class: "lupa-sidebar-title" };
28695
+ const _hoisted_4$g = { class: "lupa-sidebar-title" };
28683
28696
  const _hoisted_5$b = {
28684
28697
  key: 0,
28685
28698
  class: "lupa-sidebar-filter-count"
@@ -28724,7 +28737,7 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
28724
28737
  }),
28725
28738
  createElementVNode("div", _hoisted_2$w, [
28726
28739
  createElementVNode("div", _hoisted_3$o, [
28727
- createElementVNode("div", _hoisted_4$h, [
28740
+ createElementVNode("div", _hoisted_4$g, [
28728
28741
  createTextVNode(toDisplayString(sidebarTitle.value) + " ", 1),
28729
28742
  isFilterCountVisible.value ? (openBlock(), createElementBlock("span", _hoisted_5$b, toDisplayString(unref(currentFilterCount)), 1)) : createCommentVNode("", true)
28730
28743
  ]),
@@ -28751,7 +28764,7 @@ const _hoisted_3$n = {
28751
28764
  key: 1,
28752
28765
  class: "lupa-search-results-breadcrumb-text"
28753
28766
  };
28754
- const _hoisted_4$g = { key: 2 };
28767
+ const _hoisted_4$f = { key: 2 };
28755
28768
  const _sfc_main$N = /* @__PURE__ */ defineComponent({
28756
28769
  __name: "SearchResultsBreadcrumbs",
28757
28770
  props: {
@@ -28793,7 +28806,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
28793
28806
  return handleNavigation(e2, (_a26 = breadcrumb == null ? void 0 : breadcrumb.link) != null ? _a26 : "");
28794
28807
  }
28795
28808
  }, toDisplayString(getLabel(breadcrumb.label)), 9, _hoisted_2$v)) : (openBlock(), createElementBlock("span", _hoisted_3$n, toDisplayString(getLabel(breadcrumb.label)), 1)),
28796
- index < breadcrumbsValue.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_4$g, toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : createCommentVNode("", true)
28809
+ index < breadcrumbsValue.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_4$f, toDisplayString((_a25 = breadcrumb.separator) != null ? _a25 : "/"), 1)) : createCommentVNode("", true)
28797
28810
  ]);
28798
28811
  }), 128))
28799
28812
  ]);
@@ -28955,8 +28968,7 @@ const _hoisted_2$u = {
28955
28968
  key: 0,
28956
28969
  class: "lupa-page-number-separator"
28957
28970
  };
28958
- const _hoisted_3$m = ["onClick"];
28959
- const _hoisted_4$f = {
28971
+ const _hoisted_3$m = {
28960
28972
  key: 0,
28961
28973
  class: "lupa-page-number-separator"
28962
28974
  };
@@ -29023,7 +29035,24 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
29023
29035
  timeout: (_f = (_e = searchResultOptions.value.scrollToResults) == null ? void 0 : _e.timeout) != null ? _f : 500
29024
29036
  };
29025
29037
  });
29026
- const handlePageChange = (page) => {
29038
+ const tagName = computed(() => {
29039
+ return props.options.renderAsLinks ? "a" : "div";
29040
+ });
29041
+ const getPageUrlWithNewParams = (page) => {
29042
+ return paramStore.getPageUrlWithNewParams({
29043
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS.PAGE), value: page.toString() }]
29044
+ });
29045
+ };
29046
+ const getHref = (page) => {
29047
+ if (props.options.renderAsLinks) {
29048
+ return getPageUrlWithNewParams(page);
29049
+ }
29050
+ return null;
29051
+ };
29052
+ const handlePageChange = (e2, page) => {
29053
+ if (e2 && props.options.renderAsLinks) {
29054
+ e2.preventDefault();
29055
+ }
29027
29056
  if (page > 0) {
29028
29057
  paramStore.appendParams({
29029
29058
  params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS.PAGE), value: page.toString() }]
@@ -29037,46 +29066,78 @@ const _sfc_main$I = /* @__PURE__ */ defineComponent({
29037
29066
  }
29038
29067
  };
29039
29068
  return (_ctx, _cache) => {
29069
+ var _a25;
29040
29070
  return showPagination.value ? (openBlock(), createElementBlock("div", _hoisted_1$D, [
29041
- showBack.value ? (openBlock(), createElementBlock("div", {
29071
+ showBack.value ? (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
29042
29072
  key: 0,
29043
29073
  class: normalizeClass(firstPageLabel.value === "<" ? "lupa-page-arrow" : "lupa-show-less"),
29044
- onClick: _cache[0] || (_cache[0] = () => handlePageChange(_ctx.options.selectedPage - 1))
29045
- }, toDisplayString(firstPageLabel.value), 3)) : createCommentVNode("", true),
29074
+ href: getHref(_ctx.options.selectedPage - 1),
29075
+ onClick: _cache[0] || (_cache[0] = (e2) => handlePageChange(e2, _ctx.options.selectedPage - 1))
29076
+ }, {
29077
+ default: withCtx(() => [
29078
+ createTextVNode(toDisplayString(firstPageLabel.value), 1)
29079
+ ]),
29080
+ _: 1
29081
+ }, 8, ["class", "href"])) : createCommentVNode("", true),
29046
29082
  showFirstPage.value ? (openBlock(), createElementBlock(Fragment, { key: 1 }, [
29047
- createElementVNode("div", {
29083
+ (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
29084
+ href: getHref(1),
29048
29085
  class: "lupa-page-number lupa-page-number-first",
29049
- onClick: _cache[1] || (_cache[1] = () => handlePageChange(1))
29050
- }, " 1 "),
29086
+ onClick: _cache[1] || (_cache[1] = (e2) => handlePageChange(e2, 1))
29087
+ }, {
29088
+ default: withCtx(() => _cache[4] || (_cache[4] = [
29089
+ createTextVNode(" 1 ")
29090
+ ])),
29091
+ _: 1,
29092
+ __: [4]
29093
+ }, 8, ["href"])),
29051
29094
  showFirstPageSeparator.value ? (openBlock(), createElementBlock("div", _hoisted_2$u, "...")) : createCommentVNode("", true)
29052
29095
  ], 64)) : createCommentVNode("", true),
29053
29096
  (openBlock(true), createElementBlock(Fragment, null, renderList(pages.value, (page) => {
29054
- return openBlock(), createElementBlock("div", {
29097
+ return openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
29055
29098
  key: page,
29056
- onClick: () => handlePageChange(page),
29099
+ href: getHref(page),
29100
+ onClick: (e2) => handlePageChange(e2, page),
29057
29101
  class: normalizeClass([
29058
29102
  "lupa-page-number",
29059
29103
  page === _ctx.options.selectedPage ? "lupa-page-number-selected" : ""
29060
29104
  ]),
29061
29105
  "data-cy": "lupa-page-number"
29062
- }, toDisplayString(page), 11, _hoisted_3$m);
29106
+ }, {
29107
+ default: withCtx(() => [
29108
+ createTextVNode(toDisplayString(page), 1)
29109
+ ]),
29110
+ _: 2
29111
+ }, 1032, ["href", "onClick", "class"]);
29063
29112
  }), 128)),
29064
29113
  showLastPage.value ? (openBlock(), createElementBlock(Fragment, { key: 2 }, [
29065
- showLastPageSeparator.value ? (openBlock(), createElementBlock("div", _hoisted_4$f, "...")) : createCommentVNode("", true),
29066
- createElementVNode("div", {
29114
+ showLastPageSeparator.value ? (openBlock(), createElementBlock("div", _hoisted_3$m, "...")) : createCommentVNode("", true),
29115
+ (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
29116
+ href: getHref((_a25 = lastPage.value) != null ? _a25 : 1),
29067
29117
  class: "lupa-page-number lupa-page-number-last",
29068
- onClick: _cache[2] || (_cache[2] = () => {
29069
- var _a25;
29070
- return handlePageChange((_a25 = lastPage.value) != null ? _a25 : 1);
29118
+ onClick: _cache[2] || (_cache[2] = (e2) => {
29119
+ var _a26;
29120
+ return handlePageChange(e2, (_a26 = lastPage.value) != null ? _a26 : 1);
29071
29121
  })
29072
- }, toDisplayString(lastPage.value), 1)
29122
+ }, {
29123
+ default: withCtx(() => [
29124
+ createTextVNode(toDisplayString(lastPage.value), 1)
29125
+ ]),
29126
+ _: 1
29127
+ }, 8, ["href"]))
29073
29128
  ], 64)) : createCommentVNode("", true),
29074
- _ctx.options.selectedPage < _ctx.options.count ? (openBlock(), createElementBlock("div", {
29129
+ _ctx.options.selectedPage < _ctx.options.count ? (openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
29075
29130
  key: 3,
29076
29131
  class: normalizeClass(lastPageLabel.value === ">" ? "lupa-page-arrow" : "lupa-show-more"),
29132
+ href: getHref(_ctx.options.selectedPage + 1),
29077
29133
  "data-cy": "lupa-show-more",
29078
- onClick: _cache[3] || (_cache[3] = () => handlePageChange(_ctx.options.selectedPage + 1))
29079
- }, toDisplayString(lastPageLabel.value), 3)) : createCommentVNode("", true)
29134
+ onClick: _cache[3] || (_cache[3] = (e2) => handlePageChange(e2, _ctx.options.selectedPage + 1))
29135
+ }, {
29136
+ default: withCtx(() => [
29137
+ createTextVNode(toDisplayString(lastPageLabel.value), 1)
29138
+ ]),
29139
+ _: 1
29140
+ }, 8, ["class", "href"])) : createCommentVNode("", true)
29080
29141
  ])) : createCommentVNode("", true);
29081
29142
  };
29082
29143
  }
@@ -29310,6 +29371,7 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
29310
29371
  }
29311
29372
  });
29312
29373
  const paginationOptions = computed(() => {
29374
+ var _a25;
29313
29375
  const pageSelect = optionsValue.value.pagination.pageSelection;
29314
29376
  return {
29315
29377
  pageSize: {
@@ -29320,7 +29382,8 @@ const _sfc_main$F = /* @__PURE__ */ defineComponent({
29320
29382
  count: getPageCount(searchResult.value.total, limit.value),
29321
29383
  selectedPage: page.value,
29322
29384
  display: pageSelect.display,
29323
- displayMobile: pageSelect.displayMobile
29385
+ displayMobile: pageSelect.displayMobile,
29386
+ renderAsLinks: (_a25 = pageSelect.renderAsLinks) != null ? _a25 : false
29324
29387
  },
29325
29388
  labels: optionsValue.value.labels
29326
29389
  };
@@ -24,6 +24,15 @@ export declare const useParamsStore: import('pinia').StoreDefinition<"params", P
24
24
  }>;
25
25
  lastChangedParams: Ref<any[], any[]>;
26
26
  skipFacetReload: import('vue').ComputedRef<boolean>;
27
+ getPageUrlWithNewParams: ({ params: newParams, paramsToRemove, encode, searchResultsLink }: {
28
+ params: {
29
+ name: string;
30
+ value: string;
31
+ }[];
32
+ paramsToRemove?: "all" | string[];
33
+ encode?: boolean;
34
+ searchResultsLink?: string;
35
+ }) => string;
27
36
  add: (newParams: QueryParams, ssr?: SsrOptions) => {
28
37
  params: QueryParams;
29
38
  };
@@ -77,6 +86,15 @@ export declare const useParamsStore: import('pinia').StoreDefinition<"params", P
77
86
  }>;
78
87
  lastChangedParams: Ref<any[], any[]>;
79
88
  skipFacetReload: import('vue').ComputedRef<boolean>;
89
+ getPageUrlWithNewParams: ({ params: newParams, paramsToRemove, encode, searchResultsLink }: {
90
+ params: {
91
+ name: string;
92
+ value: string;
93
+ }[];
94
+ paramsToRemove?: "all" | string[];
95
+ encode?: boolean;
96
+ searchResultsLink?: string;
97
+ }) => string;
80
98
  add: (newParams: QueryParams, ssr?: SsrOptions) => {
81
99
  params: QueryParams;
82
100
  };
@@ -130,6 +148,15 @@ export declare const useParamsStore: import('pinia').StoreDefinition<"params", P
130
148
  }>;
131
149
  lastChangedParams: Ref<any[], any[]>;
132
150
  skipFacetReload: import('vue').ComputedRef<boolean>;
151
+ getPageUrlWithNewParams: ({ params: newParams, paramsToRemove, encode, searchResultsLink }: {
152
+ params: {
153
+ name: string;
154
+ value: string;
155
+ }[];
156
+ paramsToRemove?: "all" | string[];
157
+ encode?: boolean;
158
+ searchResultsLink?: string;
159
+ }) => string;
133
160
  add: (newParams: QueryParams, ssr?: SsrOptions) => {
134
161
  params: QueryParams;
135
162
  };
@@ -161,4 +188,4 @@ export declare const useParamsStore: import('pinia').StoreDefinition<"params", P
161
188
  setDefaultLimit: (newDefaultLimit: number) => number;
162
189
  setSearchResultsLink: (newSearchResultsLink: string) => void;
163
190
  setSortSettings: ({ selectedSortKey, previousSortKey }: SortCallbackContext) => void;
164
- }, "add" | "removeAllFilters" | "removeParameters" | "handleNoResultsFlag" | "goToResults" | "appendParams" | "setDefaultLimit" | "setSearchResultsLink" | "setSortSettings">>;
191
+ }, "add" | "getPageUrlWithNewParams" | "removeAllFilters" | "removeParameters" | "handleNoResultsFlag" | "goToResults" | "appendParams" | "setDefaultLimit" | "setSearchResultsLink" | "setSortSettings">>;
@@ -13,6 +13,7 @@ export type PaginationPageSelect = {
13
13
  selectedPage: number;
14
14
  display: number;
15
15
  displayMobile: number;
16
+ renderAsLinks?: boolean;
16
17
  };
17
18
  export type PaginationDisplay = {
18
19
  pageSize: boolean;
@@ -164,6 +164,7 @@ export type SearchResultsPagination = {
164
164
  position: SearchResultsPaginationPosition;
165
165
  display: number;
166
166
  displayMobile: number;
167
+ renderAsLinks?: boolean;
167
168
  };
168
169
  };
169
170
  export type SearchResultsPaginationPosition = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getlupa/vue",
3
- "version": "0.22.0",
3
+ "version": "0.22.2",
4
4
  "main": "dist/lupaSearch.mjs",
5
5
  "module": "dist/lupaSearch.mjs",
6
6
  "types": "dist/src/index.d.ts",