@getlupa/client 1.14.0 → 1.14.4

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.
@@ -8563,11 +8563,11 @@ var __async = (__this, __arguments, generator) => {
8563
8563
  const _hoisted_1$1d = { id: "lupa-search-box-input-container" };
8564
8564
  const _hoisted_2$S = { class: "lupa-input-clear" };
8565
8565
  const _hoisted_3$B = { id: "lupa-search-box-input" };
8566
- const _hoisted_4$t = ["value"];
8567
- const _hoisted_5$j = ["aria-label", "placeholder"];
8568
- const _hoisted_6$9 = /* @__PURE__ */ createBaseVNode("span", { class: "lupa-search-submit-icon" }, null, -1);
8566
+ const _hoisted_4$s = ["value"];
8567
+ const _hoisted_5$k = ["aria-label", "placeholder"];
8568
+ const _hoisted_6$a = /* @__PURE__ */ createBaseVNode("span", { class: "lupa-search-submit-icon" }, null, -1);
8569
8569
  const _hoisted_7$7 = [
8570
- _hoisted_6$9
8570
+ _hoisted_6$a
8571
8571
  ];
8572
8572
  const _hoisted_8$3 = {
8573
8573
  key: 0,
@@ -8670,7 +8670,7 @@ var __async = (__this, __arguments, generator) => {
8670
8670
  "aria-hidden": "true",
8671
8671
  value: showHint.value ? suggestedValue.value.item.suggestion : "",
8672
8672
  disabled: ""
8673
- }, null, 8, _hoisted_4$t),
8673
+ }, null, 8, _hoisted_4$s),
8674
8674
  withDirectives(createBaseVNode("input", mergeProps({
8675
8675
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event)
8676
8676
  }, inputAttributes.value, {
@@ -8684,7 +8684,7 @@ var __async = (__this, __arguments, generator) => {
8684
8684
  placeholder: labels.value.placeholder,
8685
8685
  onInput: handleInput,
8686
8686
  onFocus: handleFocus
8687
- }), null, 16, _hoisted_5$j), [
8687
+ }), null, 16, _hoisted_5$k), [
8688
8688
  [vModelText, inputValue.value]
8689
8689
  ]),
8690
8690
  _ctx.options.showSubmitButton ? (openBlock(), createElementBlock("button", {
@@ -8843,6 +8843,34 @@ var __async = (__this, __arguments, generator) => {
8843
8843
  };
8844
8844
  }
8845
8845
  });
8846
+ const generateGridTemplate = (elements) => {
8847
+ const indexedElements = elements.map((el, index) => __spreadProps2(__spreadValues2({}, el), { index }));
8848
+ if (!indexedElements.length || !indexedElements.every((el) => el.gridArea === "left" || el.gridArea === "right")) {
8849
+ return void 0;
8850
+ }
8851
+ let leftElements = indexedElements.filter((el) => el.gridArea === "left");
8852
+ let rightElements = indexedElements.filter((el) => el.gridArea === "right");
8853
+ if (!leftElements.length && !rightElements.length) {
8854
+ return "";
8855
+ } else if (!leftElements.length) {
8856
+ leftElements = rightElements;
8857
+ } else if (!rightElements.length) {
8858
+ rightElements = leftElements;
8859
+ }
8860
+ const totalRows = Math.max(leftElements.length, rightElements.length);
8861
+ const gridTemplate = [];
8862
+ for (let row = 0; row < totalRows; row++) {
8863
+ const leftIndex = row < leftElements.length ? row : leftElements.length - 1;
8864
+ const rightIndex = row < rightElements.length ? row : rightElements.length - 1;
8865
+ const leftElement = leftElements[leftIndex];
8866
+ const rightElement = rightElements[rightIndex];
8867
+ const leftColumn = `${leftElement.gridArea}${leftElement.index}`;
8868
+ const rightColumn = `${rightElement.gridArea}${rightElement.index}`;
8869
+ const gridRow = `${leftColumn} ${rightColumn}`;
8870
+ gridTemplate.push(`"${gridRow}"`);
8871
+ }
8872
+ return gridTemplate.join(" ");
8873
+ };
8846
8874
  const _hoisted_1$19 = ["innerHTML"];
8847
8875
  const _hoisted_2$Q = {
8848
8876
  key: 1,
@@ -8854,11 +8882,11 @@ var __async = (__this, __arguments, generator) => {
8854
8882
  class: "lupa-suggestion-facet",
8855
8883
  "data-cy": "lupa-suggestion-facet"
8856
8884
  };
8857
- const _hoisted_4$s = {
8885
+ const _hoisted_4$r = {
8858
8886
  class: "lupa-suggestion-facet-label",
8859
8887
  "data-cy": "lupa-suggestion-facet-label"
8860
8888
  };
8861
- const _hoisted_5$i = {
8889
+ const _hoisted_5$j = {
8862
8890
  class: "lupa-suggestion-facet-value",
8863
8891
  "data-cy": "lupa-suggestion-facet-value"
8864
8892
  };
@@ -8900,8 +8928,8 @@ var __async = (__this, __arguments, generator) => {
8900
8928
  innerHTML: _ctx.suggestion.displayHighlight
8901
8929
  }, null, 8, _hoisted_1$19)) : (openBlock(), createElementBlock("div", _hoisted_2$Q, toDisplayString(_ctx.suggestion.display), 1)),
8902
8930
  _ctx.suggestion.facet ? (openBlock(), createElementBlock("div", _hoisted_3$A, [
8903
- createBaseVNode("span", _hoisted_4$s, toDisplayString(facetLabel.value), 1),
8904
- createBaseVNode("span", _hoisted_5$i, toDisplayString(_ctx.suggestion.facet.title), 1)
8931
+ createBaseVNode("span", _hoisted_4$r, toDisplayString(facetLabel.value), 1),
8932
+ createBaseVNode("span", _hoisted_5$j, toDisplayString(_ctx.suggestion.facet.title), 1)
8905
8933
  ])) : createCommentVNode("", true)
8906
8934
  ]);
8907
8935
  };
@@ -9041,6 +9069,7 @@ var __async = (__this, __arguments, generator) => {
9041
9069
  });
9042
9070
  };
9043
9071
  const getSuggestionsDebounced = debounce$1(getSuggestions, props.debounce);
9072
+ watch(() => props.panel.limit, getSuggestionsDebounced);
9044
9073
  return (_ctx, _cache) => {
9045
9074
  return openBlock(), createBlock(_sfc_main$1h, {
9046
9075
  items: searchResult.value,
@@ -18161,6 +18190,25 @@ and ensure you are accounting for this risk.
18161
18190
  var _a;
18162
18191
  return Boolean((_a = hoverImages.value) == null ? void 0 : _a.length);
18163
18192
  });
18193
+ const widthOverride = computed(() => {
18194
+ var _a, _b;
18195
+ return (_b = (_a = props.options.dimensions) == null ? void 0 : _a.width) != null ? _b : void 0;
18196
+ });
18197
+ const heightOverride = computed(() => {
18198
+ var _a, _b;
18199
+ return (_b = (_a = props.options.dimensions) == null ? void 0 : _a.height) != null ? _b : void 0;
18200
+ });
18201
+ const objectFitOverride = computed(() => {
18202
+ var _a, _b;
18203
+ return (_b = (_a = props.options.dimensions) == null ? void 0 : _a.objectFit) != null ? _b : void 0;
18204
+ });
18205
+ const styleOverride = computed(() => {
18206
+ return {
18207
+ width: widthOverride.value ? `${widthOverride.value}px` : void 0,
18208
+ height: heightOverride.value ? `${heightOverride.value}px` : void 0,
18209
+ objectFit: objectFitOverride.value ? objectFitOverride.value : void 0
18210
+ };
18211
+ });
18164
18212
  const replaceWithPlaceholder = (e2) => {
18165
18213
  replaceImageWithPlaceholder(e2, placeholder.value);
18166
18214
  };
@@ -18225,6 +18273,7 @@ and ensure you are accounting for this risk.
18225
18273
  return (_ctx, _cache) => {
18226
18274
  return openBlock(), createElementBlock("div", {
18227
18275
  class: normalizeClass({ [_ctx.wrapperClass]: Boolean(_ctx.wrapperClass), "lupa-images-hover": isHover.value }),
18276
+ style: normalizeStyle(styleOverride.value),
18228
18277
  onMouseenter: handleMouseEnter,
18229
18278
  onMouseleave: handleMouseLeave
18230
18279
  }, [
@@ -18235,6 +18284,7 @@ and ensure you are accounting for this risk.
18235
18284
  default: withCtx(() => [
18236
18285
  (openBlock(), createElementBlock("img", mergeProps({
18237
18286
  class: ["lupa-images-hover-image", { [_ctx.imageClass]: true, "lupa-images-hover-image": isHover.value }],
18287
+ style: styleOverride.value,
18238
18288
  src: finalUrl.value
18239
18289
  }, { alt: imageAlt.value ? imageAlt.value : void 0 }, {
18240
18290
  onError: replaceWithPlaceholder,
@@ -18245,9 +18295,10 @@ and ensure you are accounting for this risk.
18245
18295
  })) : (openBlock(), createElementBlock("img", mergeProps({
18246
18296
  key: 1,
18247
18297
  class: ["lupa-images-main-image", { [_ctx.imageClass]: true }],
18298
+ style: styleOverride.value,
18248
18299
  src: finalMainImageUrl.value
18249
18300
  }, { alt: imageAlt.value ? imageAlt.value : void 0 }, { onError: replaceWithPlaceholder }), null, 16, _hoisted_2$P))
18250
- ], 34);
18301
+ ], 38);
18251
18302
  };
18252
18303
  }
18253
18304
  });
@@ -18389,8 +18440,8 @@ and ensure you are accounting for this risk.
18389
18440
  const _hoisted_1$13 = ["innerHTML"];
18390
18441
  const _hoisted_2$M = { key: 0 };
18391
18442
  const _hoisted_3$z = { key: 1 };
18392
- const _hoisted_4$r = { class: "lupa-search-box-custom-label" };
18393
- const _hoisted_5$h = { class: "lupa-search-box-custom-text" };
18443
+ const _hoisted_4$q = { class: "lupa-search-box-custom-label" };
18444
+ const _hoisted_5$i = { class: "lupa-search-box-custom-text" };
18394
18445
  const _sfc_main$19 = /* @__PURE__ */ defineComponent({
18395
18446
  __name: "SearchBoxProductCustom",
18396
18447
  props: {
@@ -18422,8 +18473,8 @@ and ensure you are accounting for this risk.
18422
18473
  class: [className.value, "lupa-search-box-product-custom"]
18423
18474
  }, toHandlers(_ctx.options.action ? { click: handleClick } : {}, true)), [
18424
18475
  !label.value ? (openBlock(), createElementBlock("div", _hoisted_2$M, toDisplayString(text.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$z, [
18425
- createBaseVNode("div", _hoisted_4$r, toDisplayString(label.value), 1),
18426
- createBaseVNode("div", _hoisted_5$h, toDisplayString(text.value), 1)
18476
+ createBaseVNode("div", _hoisted_4$q, toDisplayString(label.value), 1),
18477
+ createBaseVNode("div", _hoisted_5$i, toDisplayString(text.value), 1)
18427
18478
  ]))
18428
18479
  ], 16));
18429
18480
  };
@@ -18829,7 +18880,7 @@ and ensure you are accounting for this risk.
18829
18880
  const _hoisted_1$$ = { class: "lupa-badge-title" };
18830
18881
  const _hoisted_2$K = ["src"];
18831
18882
  const _hoisted_3$x = { key: 1 };
18832
- const _hoisted_4$q = {
18883
+ const _hoisted_4$p = {
18833
18884
  key: 0,
18834
18885
  class: "lupa-badge-full-text"
18835
18886
  };
@@ -18873,7 +18924,7 @@ and ensure you are accounting for this risk.
18873
18924
  }, null, 8, _hoisted_2$K)) : createCommentVNode("", true),
18874
18925
  hasTitleText.value && showTitle.value ? (openBlock(), createElementBlock("span", _hoisted_3$x, toDisplayString(_ctx.badge.titleText), 1)) : createCommentVNode("", true)
18875
18926
  ]),
18876
- hasAdditionalText.value ? (openBlock(), createElementBlock("span", _hoisted_4$q, toDisplayString(_ctx.badge.additionalText), 1)) : createCommentVNode("", true)
18927
+ hasAdditionalText.value ? (openBlock(), createElementBlock("span", _hoisted_4$p, toDisplayString(_ctx.badge.additionalText), 1)) : createCommentVNode("", true)
18877
18928
  ], 6);
18878
18929
  };
18879
18930
  }
@@ -19097,9 +19148,8 @@ and ensure you are accounting for this risk.
19097
19148
  }
19098
19149
  }));
19099
19150
  const _hoisted_1$V = ["href"];
19100
- const _hoisted_2$I = { class: "lupa-search-box-product-image-section" };
19101
- const _hoisted_3$w = { class: "lupa-search-box-product-details-section" };
19102
- const _hoisted_4$p = {
19151
+ const _hoisted_2$I = { class: "lupa-search-box-product-details-section" };
19152
+ const _hoisted_3$w = {
19103
19153
  key: 0,
19104
19154
  class: "lupa-search-box-product-add-to-cart-section"
19105
19155
  };
@@ -19127,6 +19177,25 @@ and ensure you are accounting for this risk.
19127
19177
  var _a, _b;
19128
19178
  return (_b = (_a = props.panelOptions.elements) == null ? void 0 : _a.filter((e2) => e2.type === DocumentElementType.IMAGE)) != null ? _b : [];
19129
19179
  });
19180
+ const mainImageElement = computed(() => {
19181
+ return imageElements.value[0];
19182
+ });
19183
+ const widthOverride = computed(() => {
19184
+ var _a, _b, _c;
19185
+ return (_c = (_b = (_a = mainImageElement.value) == null ? void 0 : _a.dimensions) == null ? void 0 : _b.width) != null ? _c : void 0;
19186
+ });
19187
+ const heightOverride = computed(() => {
19188
+ var _a, _b, _c;
19189
+ return (_c = (_b = (_a = mainImageElement.value) == null ? void 0 : _a.dimensions) == null ? void 0 : _b.height) != null ? _c : void 0;
19190
+ });
19191
+ const imageStyleOverride = computed(() => {
19192
+ var _a;
19193
+ return ((_a = mainImageElement.value) == null ? void 0 : _a.dimensions) ? {
19194
+ width: widthOverride.value ? `${widthOverride.value}px` : void 0,
19195
+ height: heightOverride.value ? `${heightOverride.value}px` : void 0,
19196
+ minWidth: widthOverride.value ? `${widthOverride.value + 10}px` : void 0
19197
+ } : {};
19198
+ });
19130
19199
  const detailElements = computed(() => {
19131
19200
  var _a, _b;
19132
19201
  return (_b = (_a = props.panelOptions.elements) == null ? void 0 : _a.filter(
@@ -19165,7 +19234,10 @@ and ensure you are accounting for this risk.
19165
19234
  "data-cy": "lupa-search-box-product",
19166
19235
  onClick: handleClick
19167
19236
  }), [
19168
- createBaseVNode("div", _hoisted_2$I, [
19237
+ createBaseVNode("div", {
19238
+ class: "lupa-search-box-product-image-section",
19239
+ style: normalizeStyle(imageStyleOverride.value)
19240
+ }, [
19169
19241
  (openBlock(true), createElementBlock(Fragment, null, renderList(imageElements.value, (element) => {
19170
19242
  return openBlock(), createBlock(_sfc_main$16, {
19171
19243
  class: "lupa-search-box-product-element",
@@ -19176,8 +19248,8 @@ and ensure you are accounting for this risk.
19176
19248
  link: link.value
19177
19249
  }, null, 8, ["item", "element", "labels", "link"]);
19178
19250
  }), 128))
19179
- ]),
19180
- createBaseVNode("div", _hoisted_3$w, [
19251
+ ], 4),
19252
+ createBaseVNode("div", _hoisted_2$I, [
19181
19253
  (openBlock(true), createElementBlock(Fragment, null, renderList(detailElements.value, (element) => {
19182
19254
  var _a;
19183
19255
  return openBlock(), createBlock(_sfc_main$16, {
@@ -19201,7 +19273,7 @@ and ensure you are accounting for this risk.
19201
19273
  ]), 1032, ["item", "element", "labels", "link"]);
19202
19274
  }), 128))
19203
19275
  ]),
19204
- addToCartElement.value ? (openBlock(), createElementBlock("div", _hoisted_4$p, [
19276
+ addToCartElement.value ? (openBlock(), createElementBlock("div", _hoisted_3$w, [
19205
19277
  createVNode(_sfc_main$16, {
19206
19278
  class: "lupa-search-box-product-element",
19207
19279
  item: _ctx.item,
@@ -19459,6 +19531,7 @@ and ensure you are accounting for this risk.
19459
19531
  });
19460
19532
  };
19461
19533
  const getItemsDebounced = debounce$1(getItems, props.debounce);
19534
+ watch(() => props.panel.limit, getItemsDebounced);
19462
19535
  return (_ctx, _cache) => {
19463
19536
  var _a, _b;
19464
19537
  return openBlock(), createBlock(_sfc_main$_, {
@@ -19595,7 +19668,7 @@ and ensure you are accounting for this risk.
19595
19668
  key: 1,
19596
19669
  class: "lupa-panel-title"
19597
19670
  };
19598
- const _hoisted_5$g = {
19671
+ const _hoisted_5$h = {
19599
19672
  key: 1,
19600
19673
  id: "lupa-search-box-panel"
19601
19674
  };
@@ -19647,6 +19720,13 @@ and ensure you are accounting for this risk.
19647
19720
  const displayPanels = computed(
19648
19721
  () => props.isSearchContainer ? panels.value.filter((p2) => p2.type === SearchBoxPanelType.SUGGESTION) : panels.value
19649
19722
  );
19723
+ const gridTemplate = computed(() => generateGridTemplate(panels.value));
19724
+ const styleOverrides = computed(() => {
19725
+ return {
19726
+ display: expandOnSinglePanel.value ? "block" : "grid",
19727
+ gridTemplateAreas: gridTemplate.value ? gridTemplate.value : "left right"
19728
+ };
19729
+ });
19650
19730
  const getInput = (panel) => {
19651
19731
  var _a, _b;
19652
19732
  if (panel.type === SearchBoxPanelType.SUGGESTION || !panel.searchBySuggestion) {
@@ -19673,6 +19753,9 @@ and ensure you are accounting for this risk.
19673
19753
  searchBoxStore.resetHighlightIndex();
19674
19754
  });
19675
19755
  const handleNavigation = (e2) => {
19756
+ if (!props.focused) {
19757
+ return;
19758
+ }
19676
19759
  switch (e2.key) {
19677
19760
  case "ArrowDown":
19678
19761
  e2.preventDefault();
@@ -19760,7 +19843,7 @@ and ensure you are accounting for this risk.
19760
19843
  }, toDisplayString(labels.value.closePanel), 1)) : createCommentVNode("", true),
19761
19844
  createBaseVNode("div", {
19762
19845
  class: "lupa-main-panel",
19763
- style: normalizeStyle(expandOnSinglePanel.value ? { display: "block" } : {}),
19846
+ style: normalizeStyle(styleOverrides.value),
19764
19847
  "data-cy": "lupa-main-panel"
19765
19848
  }, [
19766
19849
  (openBlock(true), createElementBlock(Fragment, null, renderList(displayPanels.value, (panel, index) => {
@@ -19771,6 +19854,7 @@ and ensure you are accounting for this risk.
19771
19854
  "lupa-panel-" + panel.type + "-index",
19772
19855
  panel.customClassName ? panel.customClassName : ""
19773
19856
  ]),
19857
+ style: normalizeStyle(panel.gridArea ? { gridArea: `${panel.gridArea}${index}` } : {}),
19774
19858
  "data-cy": "lupa-panel-" + panel.type + "-index"
19775
19859
  }, [
19776
19860
  ((_a2 = panel.labels) == null ? void 0 : _a2.topResultsTitle) && showTopResultsPanelTitle(panel.queryKey) ? (openBlock(), createElementBlock("div", _hoisted_3$v, toDisplayString((_b = panel.labels) == null ? void 0 : _b.topResultsTitle), 1)) : createCommentVNode("", true),
@@ -19796,7 +19880,7 @@ and ensure you are accounting for this risk.
19796
19880
  key: "0"
19797
19881
  } : void 0
19798
19882
  ]), 1064, ["panel", "search-box-options", "options", "debounce", "inputValue", "labels"])) : createCommentVNode("", true)
19799
- ], 10, _hoisted_2$G);
19883
+ ], 14, _hoisted_2$G);
19800
19884
  }), 128))
19801
19885
  ], 4),
19802
19886
  !unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (openBlock(), createBlock(_sfc_main$1j, {
@@ -19809,7 +19893,7 @@ and ensure you are accounting for this risk.
19809
19893
  showTotalCount: (_a = _ctx.options.showTotalCount) != null ? _a : false,
19810
19894
  onGoToResults: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("go-to-results"))
19811
19895
  }, null, 8, ["labels", "showTotalCount"])) : createCommentVNode("", true)
19812
- ])) : displayHistory.value ? (openBlock(), createElementBlock("div", _hoisted_5$g, [
19896
+ ])) : displayHistory.value ? (openBlock(), createElementBlock("div", _hoisted_5$h, [
19813
19897
  createVNode(_sfc_main$1k, {
19814
19898
  options: _ctx.options.history,
19815
19899
  history: history.value,
@@ -19860,6 +19944,7 @@ and ensure you are accounting for this risk.
19860
19944
  const inputValue = ref("");
19861
19945
  const suggestedValue = ref(defaultSuggestedValue);
19862
19946
  const opened = ref(props.isSearchContainer);
19947
+ const focused = ref(false);
19863
19948
  const searchBoxInput = ref(null);
19864
19949
  const { highlightedDocument } = storeToRefs(searchBoxStore);
19865
19950
  const searchValue = computed(() => {
@@ -19918,6 +20003,9 @@ and ensure you are accounting for this risk.
19918
20003
  const elementClass = (_b = (_a2 = e2.target) == null ? void 0 : _a2.className) != null ? _b : "";
19919
20004
  const hasLupaClass = typeof elementClass.includes == "function" && elementClass.includes("lupa-search-box");
19920
20005
  const isOutsideElement = el && !el.contains(e2.target) && !hasLupaClass;
20006
+ if (isOutsideElement && props.options.keepOpen) {
20007
+ focused.value = false;
20008
+ }
19921
20009
  if (!isOutsideElement || props.options.keepOpen) {
19922
20010
  return;
19923
20011
  }
@@ -19926,11 +20014,12 @@ and ensure you are accounting for this risk.
19926
20014
  };
19927
20015
  const close = () => {
19928
20016
  opened.value = false;
20017
+ focused.value = false;
19929
20018
  suggestedValue.value = defaultSuggestedValue;
19930
20019
  };
19931
20020
  const handleKeyDown = (e2) => {
19932
20021
  var _a2, _b;
19933
- if (!opened.value) {
20022
+ if (!focused.value) {
19934
20023
  return;
19935
20024
  }
19936
20025
  switch (e2.key) {
@@ -19950,6 +20039,7 @@ and ensure you are accounting for this risk.
19950
20039
  const handleInput = (value) => {
19951
20040
  var _a2;
19952
20041
  opened.value = true;
20042
+ focused.value = true;
19953
20043
  inputValue.value = (_a2 = value == null ? void 0 : value.replace(/\s+$/, "")) != null ? _a2 : "";
19954
20044
  suggestedValue.value = defaultSuggestedValue;
19955
20045
  searchBoxStore.resetHighlightIndex();
@@ -20077,12 +20167,14 @@ and ensure you are accounting for this risk.
20077
20167
  }
20078
20168
  });
20079
20169
  };
20170
+ watch(() => props.options.debounce, handleCurrentValueSearch);
20080
20171
  const resetValues = () => {
20081
20172
  inputValue.value = "";
20082
20173
  suggestedValue.value = defaultSuggestedValue;
20083
20174
  };
20084
20175
  const handleProductClick = () => {
20085
20176
  opened.value = false;
20177
+ focused.value = false;
20086
20178
  };
20087
20179
  const slotProps = (props2) => {
20088
20180
  return __spreadValues2({}, props2);
@@ -20099,15 +20191,17 @@ and ensure you are accounting for this risk.
20099
20191
  ref_key: "searchBoxInput",
20100
20192
  ref: searchBoxInput,
20101
20193
  onInput: handleInput,
20102
- onFocus: _cache[0] || (_cache[0] = ($event) => opened.value = true),
20194
+ onBlur: _cache[0] || (_cache[0] = ($event) => focused.value = false),
20195
+ onFocus: _cache[1] || (_cache[1] = ($event) => opened.value = true),
20103
20196
  onSearch: handleSearch,
20104
- onClose: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("close"))
20197
+ onClose: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("close"))
20105
20198
  }, null, 8, ["options", "suggestedValue", "can-close", "emit-input-on-focus"]),
20106
20199
  opened.value || _ctx.isSearchContainer ? (openBlock(), createBlock(_sfc_main$W, {
20107
20200
  key: 0,
20108
20201
  options: panelOptions.value,
20109
20202
  inputValue: inputValue.value,
20110
20203
  isSearchContainer: _ctx.isSearchContainer,
20204
+ focused: focused.value,
20111
20205
  onFetched: handleItemsFetch,
20112
20206
  onItemSelect: handleItemSelect,
20113
20207
  onGoToResults: handleSearch,
@@ -20121,7 +20215,7 @@ and ensure you are accounting for this risk.
20121
20215
  ]),
20122
20216
  key: "0"
20123
20217
  } : void 0
20124
- ]), 1032, ["options", "inputValue", "isSearchContainer"])) : createCommentVNode("", true)
20218
+ ]), 1032, ["options", "inputValue", "isSearchContainer", "focused"])) : createCommentVNode("", true)
20125
20219
  ])
20126
20220
  ]);
20127
20221
  };
@@ -20305,7 +20399,7 @@ and ensure you are accounting for this risk.
20305
20399
  class: "lupa-results-total-count"
20306
20400
  };
20307
20401
  const _hoisted_4$m = { class: "lupa-results-total-count-number" };
20308
- const _hoisted_5$f = ["innerHTML"];
20402
+ const _hoisted_5$g = ["innerHTML"];
20309
20403
  const _sfc_main$S = /* @__PURE__ */ defineComponent({
20310
20404
  __name: "SearchResultsTitle",
20311
20405
  props: {
@@ -20362,7 +20456,7 @@ and ensure you are accounting for this risk.
20362
20456
  key: 2,
20363
20457
  class: "lupa-result-page-description-top",
20364
20458
  innerHTML: descriptionTop.value
20365
- }, null, 8, _hoisted_5$f)) : createCommentVNode("", true)
20459
+ }, null, 8, _hoisted_5$g)) : createCommentVNode("", true)
20366
20460
  ]);
20367
20461
  };
20368
20462
  }
@@ -20561,7 +20655,7 @@ and ensure you are accounting for this risk.
20561
20655
  const _hoisted_2$z = { class: "lupa-category-back" };
20562
20656
  const _hoisted_3$q = ["href"];
20563
20657
  const _hoisted_4$k = ["href"];
20564
- const _hoisted_5$e = { class: "lupa-child-category-list" };
20658
+ const _hoisted_5$f = { class: "lupa-child-category-list" };
20565
20659
  const _sfc_main$O = /* @__PURE__ */ defineComponent({
20566
20660
  __name: "CategoryFilter",
20567
20661
  props: {
@@ -20667,7 +20761,7 @@ and ensure you are accounting for this risk.
20667
20761
  onClick: handleNavigationParent
20668
20762
  }, toDisplayString(parentTitle.value), 11, _hoisted_4$k)
20669
20763
  ], 2),
20670
- createBaseVNode("div", _hoisted_5$e, [
20764
+ createBaseVNode("div", _hoisted_5$f, [
20671
20765
  (openBlock(true), createElementBlock(Fragment, null, renderList(categoryChildren.value, (child) => {
20672
20766
  return openBlock(), createBlock(_sfc_main$P, {
20673
20767
  key: getCategoryKey(child),
@@ -20687,8 +20781,8 @@ and ensure you are accounting for this risk.
20687
20781
  const _hoisted_2$y = ["placeholder"];
20688
20782
  const _hoisted_3$p = { class: "lupa-terms-list" };
20689
20783
  const _hoisted_4$j = ["onClick"];
20690
- const _hoisted_5$d = { class: "lupa-term-checkbox-wrapper" };
20691
- const _hoisted_6$8 = { class: "lupa-term-checkbox-label" };
20784
+ const _hoisted_5$e = { class: "lupa-term-checkbox-wrapper" };
20785
+ const _hoisted_6$9 = { class: "lupa-term-checkbox-label" };
20692
20786
  const _hoisted_7$6 = { class: "lupa-term-label" };
20693
20787
  const _hoisted_8$2 = {
20694
20788
  key: 0,
@@ -20785,12 +20879,12 @@ and ensure you are accounting for this risk.
20785
20879
  key: item.title,
20786
20880
  onClick: ($event) => handleFacetClick(item)
20787
20881
  }, [
20788
- createBaseVNode("div", _hoisted_5$d, [
20882
+ createBaseVNode("div", _hoisted_5$e, [
20789
20883
  createBaseVNode("span", {
20790
20884
  class: normalizeClass(["lupa-term-checkbox", { checked: isChecked(item) }])
20791
20885
  }, null, 2)
20792
20886
  ]),
20793
- createBaseVNode("div", _hoisted_6$8, [
20887
+ createBaseVNode("div", _hoisted_6$9, [
20794
20888
  createBaseVNode("span", _hoisted_7$6, toDisplayString(item.title), 1),
20795
20889
  _ctx.options.showDocumentCount ? (openBlock(), createElementBlock("span", _hoisted_8$2, "(" + toDisplayString(item.count) + ")", 1)) : createCommentVNode("", true)
20796
20890
  ])
@@ -21798,8 +21892,8 @@ and ensure you are accounting for this risk.
21798
21892
  key: 0,
21799
21893
  class: "lupa-stats-range-label"
21800
21894
  };
21801
- const _hoisted_5$c = { class: "lupa-stats-from" };
21802
- const _hoisted_6$7 = ["max", "min", "pattern", "aria-label"];
21895
+ const _hoisted_5$d = { class: "lupa-stats-from" };
21896
+ const _hoisted_6$8 = ["max", "min", "pattern", "aria-label"];
21803
21897
  const _hoisted_7$5 = { key: 0 };
21804
21898
  const _hoisted_8$1 = /* @__PURE__ */ createBaseVNode("div", { class: "lupa-stats-separator" }, null, -1);
21805
21899
  const _hoisted_9$1 = {
@@ -21990,7 +22084,7 @@ and ensure you are accounting for this risk.
21990
22084
  !isInputVisible.value ? (openBlock(), createElementBlock("div", _hoisted_2$x, toDisplayString(statsSummary.value), 1)) : (openBlock(), createElementBlock("div", _hoisted_3$o, [
21991
22085
  createBaseVNode("div", null, [
21992
22086
  rangeLabelFrom.value ? (openBlock(), createElementBlock("div", _hoisted_4$i, toDisplayString(rangeLabelFrom.value), 1)) : createCommentVNode("", true),
21993
- createBaseVNode("div", _hoisted_5$c, [
22087
+ createBaseVNode("div", _hoisted_5$d, [
21994
22088
  withDirectives(createBaseVNode("input", {
21995
22089
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fromValue.value = $event),
21996
22090
  type: "text",
@@ -21999,7 +22093,7 @@ and ensure you are accounting for this risk.
21999
22093
  min: facetMin.value,
22000
22094
  pattern: sliderInputFormat.value,
22001
22095
  "aria-label": ariaLabelFrom.value
22002
- }, null, 8, _hoisted_6$7), [
22096
+ }, null, 8, _hoisted_6$8), [
22003
22097
  [
22004
22098
  vModelText,
22005
22099
  fromValue.value,
@@ -22060,7 +22154,7 @@ and ensure you are accounting for this risk.
22060
22154
  key: 0,
22061
22155
  class: "lupa-term-count"
22062
22156
  };
22063
- const _hoisted_5$b = {
22157
+ const _hoisted_5$c = {
22064
22158
  key: 0,
22065
22159
  class: "lupa-facet-level"
22066
22160
  };
@@ -22120,7 +22214,7 @@ and ensure you are accounting for this risk.
22120
22214
  _ctx.options.showDocumentCount ? (openBlock(), createElementBlock("span", _hoisted_4$h, "(" + toDisplayString(_ctx.item.count) + ")", 1)) : createCommentVNode("", true)
22121
22215
  ])
22122
22216
  ]),
22123
- showChildren.value ? (openBlock(), createElementBlock("div", _hoisted_5$b, [
22217
+ showChildren.value ? (openBlock(), createElementBlock("div", _hoisted_5$c, [
22124
22218
  (openBlock(true), createElementBlock(Fragment, null, renderList(treeItem.value.children, (itemChild) => {
22125
22219
  return openBlock(), createBlock(_component_HierarchyFacetLevel, {
22126
22220
  key: itemChild.title,
@@ -22630,8 +22724,8 @@ and ensure you are accounting for this risk.
22630
22724
  const _hoisted_2$r = ["onClick"];
22631
22725
  const _hoisted_3$l = { class: "lupa-mobile-sidebar-content" };
22632
22726
  const _hoisted_4$g = { class: "lupa-sidebar-top" };
22633
- const _hoisted_5$a = { class: "lupa-sidebar-title" };
22634
- const _hoisted_6$6 = {
22727
+ const _hoisted_5$b = { class: "lupa-sidebar-title" };
22728
+ const _hoisted_6$7 = {
22635
22729
  key: 0,
22636
22730
  class: "lupa-sidebar-filter-count"
22637
22731
  };
@@ -22674,9 +22768,9 @@ and ensure you are accounting for this risk.
22674
22768
  }, null, 8, _hoisted_2$r),
22675
22769
  createBaseVNode("div", _hoisted_3$l, [
22676
22770
  createBaseVNode("div", _hoisted_4$g, [
22677
- createBaseVNode("div", _hoisted_5$a, [
22771
+ createBaseVNode("div", _hoisted_5$b, [
22678
22772
  createTextVNode(toDisplayString(sidebarTitle.value) + " ", 1),
22679
- isFilterCountVisible.value ? (openBlock(), createElementBlock("span", _hoisted_6$6, toDisplayString(unref(currentFilterCount)), 1)) : createCommentVNode("", true)
22773
+ isFilterCountVisible.value ? (openBlock(), createElementBlock("span", _hoisted_6$7, toDisplayString(unref(currentFilterCount)), 1)) : createCommentVNode("", true)
22680
22774
  ]),
22681
22775
  createBaseVNode("div", {
22682
22776
  class: "lupa-filter-toggle-mobile",
@@ -22980,7 +23074,7 @@ and ensure you are accounting for this risk.
22980
23074
  const _hoisted_2$o = { id: "lupa-select" };
22981
23075
  const _hoisted_3$i = { class: "lupa-select-label" };
22982
23076
  const _hoisted_4$d = ["aria-label"];
22983
- const _hoisted_5$9 = ["value"];
23077
+ const _hoisted_5$a = ["value"];
22984
23078
  const _sfc_main$y = /* @__PURE__ */ defineComponent({
22985
23079
  __name: "SearchResultsPageSize",
22986
23080
  props: {
@@ -23024,7 +23118,7 @@ and ensure you are accounting for this risk.
23024
23118
  return openBlock(), createElementBlock("option", {
23025
23119
  key: option,
23026
23120
  value: option
23027
- }, toDisplayString(prefixLabel.value) + toDisplayString(option), 9, _hoisted_5$9);
23121
+ }, toDisplayString(prefixLabel.value) + toDisplayString(option), 9, _hoisted_5$a);
23028
23122
  }), 128))
23029
23123
  ], 40, _hoisted_4$d)
23030
23124
  ])
@@ -23039,7 +23133,7 @@ and ensure you are accounting for this risk.
23039
23133
  const _hoisted_2$n = { id: "lupa-select" };
23040
23134
  const _hoisted_3$h = { class: "lupa-select-label" };
23041
23135
  const _hoisted_4$c = ["aria-label"];
23042
- const _hoisted_5$8 = ["value"];
23136
+ const _hoisted_5$9 = ["value"];
23043
23137
  const _sfc_main$x = /* @__PURE__ */ defineComponent({
23044
23138
  __name: "SearchResultsSort",
23045
23139
  props: {
@@ -23104,7 +23198,7 @@ and ensure you are accounting for this risk.
23104
23198
  return openBlock(), createElementBlock("option", {
23105
23199
  key: option.key,
23106
23200
  value: option.key
23107
- }, toDisplayString(option.label), 9, _hoisted_5$8);
23201
+ }, toDisplayString(option.label), 9, _hoisted_5$9);
23108
23202
  }), 128))
23109
23203
  ], 40, _hoisted_4$c), [
23110
23204
  [vModelSelect, selectedKey.value]
@@ -23121,8 +23215,8 @@ and ensure you are accounting for this risk.
23121
23215
  };
23122
23216
  const _hoisted_3$g = { key: 2 };
23123
23217
  const _hoisted_4$b = { key: 4 };
23124
- const _hoisted_5$7 = { key: 6 };
23125
- const _hoisted_6$5 = { class: "lupa-toolbar-right" };
23218
+ const _hoisted_5$8 = { key: 6 };
23219
+ const _hoisted_6$6 = { class: "lupa-toolbar-right" };
23126
23220
  const _hoisted_7$3 = {
23127
23221
  key: 0,
23128
23222
  class: "lupa-toolbar-right-title"
@@ -23250,9 +23344,9 @@ and ensure you are accounting for this risk.
23250
23344
  options: paginationOptions.value.pageSelect,
23251
23345
  "last-page-label": paginationOptions.value.labels.showMore,
23252
23346
  "first-page-label": paginationOptions.value.labels.showLess
23253
- }, null, 8, ["options", "last-page-label", "first-page-label"])) : (openBlock(), createElementBlock("div", _hoisted_5$7))
23347
+ }, null, 8, ["options", "last-page-label", "first-page-label"])) : (openBlock(), createElementBlock("div", _hoisted_5$8))
23254
23348
  ]),
23255
- createBaseVNode("div", _hoisted_6$5, [
23349
+ createBaseVNode("div", _hoisted_6$6, [
23256
23350
  toolbarRightLabel.value ? (openBlock(), createElementBlock("div", _hoisted_7$3, toDisplayString(toolbarRightLabel.value), 1)) : createCommentVNode("", true),
23257
23351
  createVNode(_sfc_main$A, {
23258
23352
  label: optionsValue.value.labels.mobileFilterButton,
@@ -23290,13 +23384,15 @@ and ensure you are accounting for this risk.
23290
23384
  };
23291
23385
  }
23292
23386
  });
23293
- const _hoisted_1$r = ["innerHTML"];
23387
+ const _hoisted_1$r = ["title", "innerHTML"];
23294
23388
  const _hoisted_2$l = ["title"];
23295
- const _hoisted_3$f = {
23389
+ const _hoisted_3$f = ["href", "innerHTML"];
23390
+ const _hoisted_4$a = ["title"];
23391
+ const _hoisted_5$7 = {
23296
23392
  key: 0,
23297
23393
  class: "lupa-search-results-product-title-text"
23298
23394
  };
23299
- const _hoisted_4$a = ["href"];
23395
+ const _hoisted_6$5 = ["href"];
23300
23396
  const _sfc_main$u = /* @__PURE__ */ defineComponent({
23301
23397
  __name: "SearchResultsProductTitle",
23302
23398
  props: {
@@ -23328,25 +23424,38 @@ and ensure you are accounting for this risk.
23328
23424
  handleRoutingEvent(props.link, event, hasEventRouting.value);
23329
23425
  };
23330
23426
  return (_ctx, _cache) => {
23331
- return isHtml.value ? (openBlock(), createElementBlock("div", {
23427
+ return isHtml.value && !_ctx.options.link ? (openBlock(), createElementBlock("div", {
23332
23428
  key: 0,
23333
23429
  class: "lupa-search-results-product-title",
23334
23430
  style: normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
23431
+ title: sanitizedTitle.value,
23335
23432
  innerHTML: sanitizedTitle.value
23336
- }, null, 12, _hoisted_1$r)) : (openBlock(), createElementBlock("div", {
23433
+ }, null, 12, _hoisted_1$r)) : isHtml.value && _ctx.options.link ? (openBlock(), createElementBlock("div", {
23337
23434
  key: 1,
23338
23435
  class: "lupa-search-results-product-title",
23339
23436
  style: normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
23437
+ title: sanitizedTitle.value
23438
+ }, [
23439
+ createBaseVNode("a", {
23440
+ href: _ctx.link,
23441
+ class: "lupa-search-results-product-title-text lupa-title-link",
23442
+ innerHTML: sanitizedTitle.value,
23443
+ onClick: handleNavigation
23444
+ }, null, 8, _hoisted_3$f)
23445
+ ], 12, _hoisted_2$l)) : (openBlock(), createElementBlock("div", {
23446
+ key: 2,
23447
+ class: "lupa-search-results-product-title",
23448
+ style: normalizeStyle(`-webkit-line-clamp: ${maxLines.value}`),
23340
23449
  title: title.value
23341
23450
  }, [
23342
- !_ctx.options.link ? (openBlock(), createElementBlock("span", _hoisted_3$f, toDisplayString(title.value), 1)) : createCommentVNode("", true),
23451
+ !_ctx.options.link ? (openBlock(), createElementBlock("span", _hoisted_5$7, toDisplayString(title.value), 1)) : createCommentVNode("", true),
23343
23452
  _ctx.options.link ? (openBlock(), createElementBlock("a", {
23344
23453
  key: 1,
23345
23454
  href: _ctx.link,
23346
23455
  class: "lupa-search-results-product-title-text lupa-title-link",
23347
23456
  onClick: handleNavigation
23348
- }, toDisplayString(title.value), 9, _hoisted_4$a)) : createCommentVNode("", true)
23349
- ], 12, _hoisted_2$l));
23457
+ }, toDisplayString(title.value), 9, _hoisted_6$5)) : createCommentVNode("", true)
23458
+ ], 12, _hoisted_4$a));
23350
23459
  };
23351
23460
  }
23352
23461
  });