@getlupa/client 1.9.4 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6894,6 +6894,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6894
6894
  const setInitialFilters = ({ initialFilters: initialFilters2 }) => {
6895
6895
  searchResultInitialFilters.value = initialFilters2;
6896
6896
  };
6897
+ const getQueryParamName = (param) => {
6898
+ var _a;
6899
+ const nameMap = searchBoxOptions.value.queryParameterNames;
6900
+ return (_a = nameMap == null ? void 0 : nameMap[param]) != null ? _a : param;
6901
+ };
6897
6902
  return {
6898
6903
  searchBoxOptions,
6899
6904
  searchResultOptions,
@@ -6908,7 +6913,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6908
6913
  setSearchBoxOptions,
6909
6914
  setTrackingOptions,
6910
6915
  setSearchResultOptions,
6911
- setInitialFilters
6916
+ setInitialFilters,
6917
+ getQueryParamName
6912
6918
  };
6913
6919
  });
6914
6920
  var DocumentElementType = /* @__PURE__ */ ((DocumentElementType2) => {
@@ -7161,9 +7167,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7161
7167
  return void 0;
7162
7168
  }
7163
7169
  };
7164
- const parseRegularKeys = (regularKeys, searchParams) => {
7170
+ const parseRegularKeys = (regularKeys, searchParams, getQueryParamName) => {
7165
7171
  const params = /* @__PURE__ */ Object.create({});
7166
- const keys = reverseKeyValue(QUERY_PARAMS$1);
7172
+ const keys = reverseKeyValue({
7173
+ QUERY: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY,
7174
+ LIMIT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.LIMIT) : QUERY_PARAMS$1.LIMIT,
7175
+ PAGE: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE,
7176
+ SORT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.SORT) : QUERY_PARAMS$1.SORT
7177
+ });
7167
7178
  for (const key of regularKeys) {
7168
7179
  const rawKey = keys[key] || key;
7169
7180
  params[rawKey] = parseParam(key, searchParams);
@@ -7205,16 +7216,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7205
7216
  }
7206
7217
  return params;
7207
7218
  };
7208
- const parseParams = (searchParams) => {
7219
+ const parseParams = (getQueryParamName, searchParams) => {
7209
7220
  const params = /* @__PURE__ */ Object.create({});
7210
7221
  if (!searchParams)
7211
7222
  return params;
7212
7223
  const paramKeys = Array.from(searchParams.keys());
7213
7224
  const facetKeys = paramKeys.filter((k) => isFacetKey(k));
7214
7225
  const regularKeys = paramKeys.filter((k) => !isFacetKey(k));
7215
- return __spreadValues2(__spreadValues2({
7226
+ const r = __spreadValues2(__spreadValues2({
7216
7227
  [QUERY_PARAMS_PARSED.QUERY]: ""
7217
- }, parseRegularKeys(regularKeys, searchParams)), parseFacetKeys(facetKeys, searchParams));
7228
+ }, parseRegularKeys(regularKeys, searchParams, getQueryParamName)), parseFacetKeys(facetKeys, searchParams));
7229
+ return r;
7218
7230
  };
7219
7231
  const appendParam = (url, { name, value }, encode = true) => {
7220
7232
  if (Array.isArray(value)) {
@@ -7235,10 +7247,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7235
7247
  url.searchParams.delete(param.name);
7236
7248
  param.value.forEach((v) => url.searchParams.append(param.name, encodeParam(v)));
7237
7249
  };
7238
- const getRemovableParams = (url, paramsToRemove) => {
7250
+ const getRemovableParams = (url, getQueryParamName, paramsToRemove) => {
7239
7251
  if (paramsToRemove === "all") {
7252
+ const params = {
7253
+ QUERY: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY,
7254
+ LIMIT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.LIMIT) : QUERY_PARAMS$1.LIMIT,
7255
+ PAGE: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE,
7256
+ SORT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.SORT) : QUERY_PARAMS$1.SORT
7257
+ };
7240
7258
  return [
7241
- ...Object.values(QUERY_PARAMS$1),
7259
+ ...Object.values(params),
7242
7260
  ...Array.from(url.searchParams.keys()).filter((k) => isFacetKey(k))
7243
7261
  ];
7244
7262
  }
@@ -7269,12 +7287,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7269
7287
  }
7270
7288
  return link;
7271
7289
  };
7272
- const generateResultLink = (link, searchText, facet) => {
7290
+ const generateResultLink = (link, getQueryParamName, searchText, facet) => {
7273
7291
  if (!searchText) {
7274
7292
  return link;
7275
7293
  }
7276
7294
  const facetParam = facet ? `&${FACET_PARAMS_TYPE.TERMS}${encodeParam(facet.key)}=${encodeParam(facet.title)}` : "";
7277
- const queryParam = `?${QUERY_PARAMS$1.QUERY}=${encodeParam(searchText)}`;
7295
+ const queryParam = `?${getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY}=${encodeParam(searchText)}`;
7278
7296
  return `${link}${queryParam}${facetParam}`;
7279
7297
  };
7280
7298
  const getRelativePath = (link) => {
@@ -7303,8 +7321,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7303
7321
  event == null ? void 0 : event.preventDefault();
7304
7322
  emitRoutingEvent(link);
7305
7323
  };
7306
- const redirectToResultsPage = (link, searchText, facet, routingBehavior = "direct-link") => {
7307
- const url = generateResultLink(link, searchText, facet);
7324
+ const redirectToResultsPage = (link, searchText, getQueryParamName, facet, routingBehavior = "direct-link") => {
7325
+ const url = generateResultLink(link, getQueryParamName, searchText, facet);
7308
7326
  if (routingBehavior === "event") {
7309
7327
  emitRoutingEvent(url);
7310
7328
  } else {
@@ -7329,15 +7347,15 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7329
7347
  value
7330
7348
  };
7331
7349
  };
7332
- const toggleTermFilter = (appendParams, facetAction, currentFilters) => {
7350
+ const toggleTermFilter = (appendParams, facetAction, getQueryParamName, currentFilters) => {
7333
7351
  const currentFilter = currentFilters == null ? void 0 : currentFilters[facetAction.key];
7334
7352
  const newParams = toggleTermParam(currentFilter, facetAction.value);
7335
7353
  appendParams({
7336
7354
  params: [getFacetParam(facetAction.key, newParams)],
7337
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
7355
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE]
7338
7356
  });
7339
7357
  };
7340
- const toggleHierarchyFilter = (appendParams, facetAction, currentFilters, removeAllLevels = false) => {
7358
+ const toggleHierarchyFilter = (appendParams, facetAction, getQueryParamName, currentFilters, removeAllLevels = false) => {
7341
7359
  var _a;
7342
7360
  const currentFilter = currentFilters == null ? void 0 : currentFilters[facetAction.key];
7343
7361
  const newParams = toggleHierarchyParam(
@@ -7347,10 +7365,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7347
7365
  );
7348
7366
  appendParams({
7349
7367
  params: [getFacetParam(facetAction.key, newParams, FACET_PARAMS_TYPE.HIERARCHY)],
7350
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
7368
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE]
7351
7369
  });
7352
7370
  };
7353
- const toggleRangeFilter = (appendParams, facetAction, currentFilters) => {
7371
+ const toggleRangeFilter = (appendParams, facetAction, getQueryParamName, currentFilters) => {
7354
7372
  const currentFilter = rangeFilterToString(
7355
7373
  currentFilters == null ? void 0 : currentFilters[facetAction.key],
7356
7374
  FACET_RANGE_SEPARATOR
@@ -7359,7 +7377,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7359
7377
  facetValue = currentFilter === facetValue ? "" : facetValue;
7360
7378
  appendParams({
7361
7379
  params: [getFacetParam(facetAction.key, facetValue, FACET_PARAMS_TYPE.RANGE)],
7362
- paramsToRemove: [QUERY_PARAMS$1.PAGE],
7380
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE],
7363
7381
  encode: false
7364
7382
  });
7365
7383
  };
@@ -7488,7 +7506,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7488
7506
  const navigate = (url) => {
7489
7507
  var _a, _b, _c;
7490
7508
  window.history.pushState("", "Append params", url.pathname + url.search);
7491
- const params2 = parseParams(url.searchParams);
7509
+ const params2 = parseParams(optionsStore.getQueryParamName, url.searchParams);
7492
7510
  (_c = (_b = (_a = optionsStore == null ? void 0 : optionsStore.searchBoxOptions) == null ? void 0 : _a.callbacks) == null ? void 0 : _b.onSearchResultsNavigate) == null ? void 0 : _c.call(_b, {
7493
7511
  params: params2
7494
7512
  });
@@ -7506,7 +7524,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7506
7524
  const paramsToRemove = Array.from(url.searchParams.keys()).filter(isFacetKey);
7507
7525
  removeParams(url, paramsToRemove);
7508
7526
  navigate(url);
7509
- params.value = parseParams(url.searchParams);
7527
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7510
7528
  searchString.value = url.search;
7511
7529
  };
7512
7530
  const removeParameters = ({
@@ -7514,13 +7532,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7514
7532
  save = true
7515
7533
  }) => {
7516
7534
  const url = getPageUrl();
7517
- paramsToRemove = getRemovableParams(url, paramsToRemove);
7535
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
7518
7536
  removeParams(url, paramsToRemove);
7519
7537
  navigate(url);
7520
7538
  if (!save) {
7521
7539
  return;
7522
7540
  }
7523
- params.value = parseParams(url.searchParams);
7541
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7524
7542
  searchString.value = url.search;
7525
7543
  };
7526
7544
  const handleNoResultsFlag = ({
@@ -7562,13 +7580,22 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7562
7580
  })
7563
7581
  ] : [];
7564
7582
  appendParams({
7565
- params: [{ name: QUERY_PARAMS$1.QUERY, value: searchText }, ...facetParam],
7583
+ params: [
7584
+ { name: optionsStore.getQueryParamName(QUERY_PARAMS$1.QUERY), value: searchText },
7585
+ ...facetParam
7586
+ ],
7566
7587
  paramsToRemove: "all",
7567
7588
  searchResultsLink: searchResultsLink.value
7568
7589
  });
7569
7590
  } else {
7570
7591
  const routing = (_a = optionsStore.boxRoutingBehavior) != null ? _a : "direct-link";
7571
- redirectToResultsPage(searchResultsLink.value, searchText, facet, routing);
7592
+ redirectToResultsPage(
7593
+ searchResultsLink.value,
7594
+ searchText,
7595
+ optionsStore.getQueryParamName,
7596
+ facet,
7597
+ routing
7598
+ );
7572
7599
  }
7573
7600
  };
7574
7601
  const appendParams = ({
@@ -7582,14 +7609,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7582
7609
  return { params: params.value };
7583
7610
  }
7584
7611
  const url = getPageUrl(searchResultsLink2);
7585
- paramsToRemove = getRemovableParams(url, paramsToRemove);
7612
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
7586
7613
  removeParams(url, paramsToRemove);
7587
7614
  newParams.forEach((p2) => appendParam(url, p2, encode));
7588
7615
  navigate(url);
7589
7616
  if (!save) {
7590
7617
  return;
7591
7618
  }
7592
- params.value = parseParams(url.searchParams);
7619
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7593
7620
  searchString.value = url.search;
7594
7621
  };
7595
7622
  const setDefaultLimit = (newDefaultLimit) => {
@@ -8324,8 +8351,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8324
8351
  const useDynamicDataStore = defineStore("dynamicData", () => {
8325
8352
  const loading = ref(false);
8326
8353
  const dynamicDataIdMap = ref({});
8354
+ const loadingIds = ref({});
8327
8355
  const optionsStore = useOptionsStore();
8328
- const loadedIds = computed(() => Object.keys(dynamicDataIdMap.value));
8356
+ computed(() => Object.keys(dynamicDataIdMap.value));
8329
8357
  const searchResultOptions = computed(() => optionsStore.searchResultOptions);
8330
8358
  const searchBoxOptions = computed(() => optionsStore.searchBoxOptions);
8331
8359
  const dynamicSearchResultData = computed(() => {
@@ -8365,11 +8393,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8365
8393
  const similarQueryResultIds = (_e = (_d = (_c = result.similarQueries) == null ? void 0 : _c.map((q) => q.items.map((i) => i.id))) == null ? void 0 : _d.flat()) != null ? _e : [];
8366
8394
  let requestedIds = [...resultIds, ...similarQueryResultIds];
8367
8395
  if (isCacheEnabled.value) {
8368
- requestedIds = requestedIds.filter((i) => !loadedIds.value.includes(i));
8396
+ requestedIds = requestedIds.filter((i) => !dynamicDataIdMap.value[`${i}`]);
8369
8397
  }
8370
8398
  if (!requestedIds.length) {
8371
8399
  return;
8372
8400
  }
8401
+ loadingIds.value = requestedIds.reduce((a, c2) => __spreadProps2(__spreadValues2({}, a), { [c2]: true }), {});
8373
8402
  loading.value = true;
8374
8403
  try {
8375
8404
  const dynamicData = dynamicSearchResultData.value || dynamicSearchBoxData.value;
@@ -8379,15 +8408,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8379
8408
  const dynamicDataResult = (_f = yield dynamicData == null ? void 0 : dynamicData.handler(requestedIds)) != null ? _f : [];
8380
8409
  const seed = {};
8381
8410
  const dynamicDataIdMapValue = dynamicDataResult.reduce(
8382
- (a, c2) => __spreadProps2(__spreadValues2({}, a), { [c2.id]: c2 }),
8411
+ (a, c2) => __spreadProps2(__spreadValues2({}, a), { [`${c2.id}`]: c2 }),
8383
8412
  seed
8384
8413
  );
8385
8414
  dynamicDataIdMap.value = __spreadValues2(__spreadValues2({}, dynamicDataIdMap.value), dynamicDataIdMapValue);
8386
8415
  } finally {
8387
8416
  loading.value = false;
8417
+ loadingIds.value = {};
8388
8418
  }
8389
8419
  });
8390
- return { dynamicDataIdMap, loading, enhanceSearchResultsWithDynamicData };
8420
+ return { dynamicDataIdMap, loading, loadingIds, enhanceSearchResultsWithDynamicData };
8391
8421
  });
8392
8422
  const joinUrlParts = (...parts) => {
8393
8423
  var _a, _b, _c;
@@ -8905,7 +8935,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8905
8935
  setup(__props) {
8906
8936
  const props = __props;
8907
8937
  const dynamicDataStore = useDynamicDataStore();
8908
- const { loading, dynamicDataIdMap } = storeToRefs(dynamicDataStore);
8938
+ const { loading, loadingIds, dynamicDataIdMap } = storeToRefs(dynamicDataStore);
8909
8939
  const elementComponent = computed(() => {
8910
8940
  switch (props.element.type) {
8911
8941
  case DocumentElementType.IMAGE:
@@ -8930,9 +8960,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8930
8960
  const displayElement = computed(() => {
8931
8961
  return props.element.display ? props.element.display(props.item) : true;
8932
8962
  });
8933
- const isLoadingDynamicData = computed(() => {
8934
- return Boolean(props.element.dynamic && loading.value);
8935
- });
8936
8963
  const enhancedItem = computed(() => {
8937
8964
  var _a, _b, _c, _d;
8938
8965
  if (!((_a = props.item) == null ? void 0 : _a.id)) {
@@ -8941,13 +8968,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8941
8968
  const enhancementData = (_d = (_c = dynamicDataIdMap.value) == null ? void 0 : _c[(_b = props.item) == null ? void 0 : _b.id]) != null ? _d : {};
8942
8969
  return __spreadValues2(__spreadValues2({}, props.item), enhancementData);
8943
8970
  });
8971
+ const isLoadingDynamicData = (id) => {
8972
+ return Boolean(props.element.dynamic && id && loading.value && (loadingIds == null ? void 0 : loadingIds.value[id]));
8973
+ };
8944
8974
  return (_ctx, _cache) => {
8975
+ var _a;
8945
8976
  return displayElement.value ? (openBlock(), createBlock(resolveDynamicComponent(elementComponent.value), {
8946
8977
  key: 0,
8947
8978
  item: enhancedItem.value,
8948
8979
  options: _ctx.element,
8949
8980
  labels: _ctx.labels,
8950
- class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData.value }),
8981
+ class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData((_a = _ctx.item) == null ? void 0 : _a.id) }),
8951
8982
  inStock: _ctx.isInStock
8952
8983
  }, null, 8, ["item", "options", "labels", "class", "inStock"])) : createCommentVNode("", true);
8953
8984
  };
@@ -9530,6 +9561,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9530
9561
  ref: panelContainer
9531
9562
  }, [
9532
9563
  displayResults.value ? (openBlock(), createElementBlock("div", _hoisted_1$Y, [
9564
+ labels.value.closePanel ? (openBlock(), createElementBlock("a", {
9565
+ key: 0,
9566
+ class: "lupa-search-box-close-panel",
9567
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
9568
+ }, toDisplayString(labels.value.closePanel), 1)) : createCommentVNode("", true),
9533
9569
  createBaseVNode("div", {
9534
9570
  class: "lupa-main-panel",
9535
9571
  style: normalizeStyle(expandOnSinglePanel.value ? { display: "block" } : {}),
@@ -9554,9 +9590,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9554
9590
  debounce: _ctx.options.debounce,
9555
9591
  inputValue: getInput(panel),
9556
9592
  labels: labels.value,
9557
- onFetched: _cache[0] || (_cache[0] = (data) => _ctx.$emit("fetched", data)),
9558
- onItemSelect: _cache[1] || (_cache[1] = (item) => _ctx.$emit("itemSelect", item)),
9559
- onProductClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("product-click"))
9593
+ onFetched: _cache[1] || (_cache[1] = (data) => _ctx.$emit("fetched", data)),
9594
+ onItemSelect: _cache[2] || (_cache[2] = (item) => _ctx.$emit("itemSelect", item)),
9595
+ onProductClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("product-click"))
9560
9596
  }, createSlots({ _: 2 }, [
9561
9597
  _ctx.$slots.productCard ? {
9562
9598
  name: "productCard",
@@ -9570,14 +9606,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9570
9606
  }), 128))
9571
9607
  ], 4),
9572
9608
  !unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (openBlock(), createBlock(_sfc_main$1h, {
9573
- key: 0,
9609
+ key: 1,
9574
9610
  labels: labels.value
9575
9611
  }, null, 8, ["labels"])) : createCommentVNode("", true),
9576
9612
  unref(hasAnyResults) || !_ctx.options.hideMoreResultsButtonOnNoResults ? (openBlock(), createBlock(_sfc_main$1k, {
9577
- key: 1,
9613
+ key: 2,
9578
9614
  labels: labels.value,
9579
9615
  showTotalCount: (_a = _ctx.options.showTotalCount) != null ? _a : false,
9580
- onGoToResults: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("go-to-results"))
9616
+ onGoToResults: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("go-to-results"))
9581
9617
  }, null, 8, ["labels", "showTotalCount"])) : createCommentVNode("", true)
9582
9618
  ])) : displayHistory.value ? (openBlock(), createElementBlock("div", _hoisted_5$e, [
9583
9619
  createVNode(_sfc_main$1i, {
@@ -9688,6 +9724,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9688
9724
  opened.value = false;
9689
9725
  suggestedValue.value = defaultSuggestedValue;
9690
9726
  };
9727
+ const close = () => {
9728
+ opened.value = false;
9729
+ suggestedValue.value = defaultSuggestedValue;
9730
+ };
9691
9731
  const handleKeyDown = (e) => {
9692
9732
  var _a2, _b;
9693
9733
  if (!opened.value) {
@@ -9869,7 +9909,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9869
9909
  onFetched: handleItemsFetch,
9870
9910
  onItemSelect: handleItemSelect,
9871
9911
  onGoToResults: handleSearch,
9872
- onProductClick: handleProductClick
9912
+ onProductClick: handleProductClick,
9913
+ onClose: close
9873
9914
  }, createSlots({ _: 2 }, [
9874
9915
  _ctx.$slots.productCard ? {
9875
9916
  name: "productCard",
@@ -10166,6 +10207,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10166
10207
  setup(__props) {
10167
10208
  const isOpen = ref(false);
10168
10209
  const paramsStore = useParamsStore();
10210
+ const optionStore = useOptionsStore();
10169
10211
  const searchResultStore = useSearchResultStore();
10170
10212
  const { filters, displayFilters, currentFilterCount } = storeToRefs(searchResultStore);
10171
10213
  const currentFilters = computed(() => filters.value);
@@ -10183,6 +10225,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10183
10225
  // TODO: Fix any
10184
10226
  paramsStore.appendParams,
10185
10227
  { type: "terms", value: filter.value, key: filter.key },
10228
+ optionStore.getQueryParamName,
10186
10229
  currentFilters.value
10187
10230
  );
10188
10231
  break;
@@ -10190,13 +10233,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10190
10233
  toggleHierarchyFilter(
10191
10234
  paramsStore.appendParams,
10192
10235
  { type: "hierarchy", value: filter.value, key: filter.key },
10236
+ optionStore.getQueryParamName,
10193
10237
  currentFilters.value,
10194
10238
  true
10195
10239
  );
10196
10240
  break;
10197
10241
  case "range":
10198
10242
  paramsStore.removeParameters({
10199
- paramsToRemove: [QUERY_PARAMS$1.PAGE, `${FACET_PARAMS_TYPE.RANGE}${filter.key}`]
10243
+ paramsToRemove: [
10244
+ optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE),
10245
+ `${FACET_PARAMS_TYPE.RANGE}${filter.key}`
10246
+ ]
10200
10247
  });
10201
10248
  break;
10202
10249
  }
@@ -12198,13 +12245,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12198
12245
  const handleFacetSelect = (facetAction) => {
12199
12246
  switch (facetAction.type) {
12200
12247
  case "terms":
12201
- toggleTermFilter(paramStore.appendParams, facetAction, filters.value);
12248
+ toggleTermFilter(
12249
+ paramStore.appendParams,
12250
+ facetAction,
12251
+ optionsStore.getQueryParamName,
12252
+ filters.value
12253
+ );
12202
12254
  break;
12203
12255
  case "range":
12204
- toggleRangeFilter(paramStore.appendParams, facetAction, filters.value);
12256
+ toggleRangeFilter(
12257
+ paramStore.appendParams,
12258
+ facetAction,
12259
+ optionsStore.getQueryParamName,
12260
+ filters.value
12261
+ );
12205
12262
  break;
12206
12263
  case "hierarchy":
12207
- toggleHierarchyFilter(paramStore.appendParams, facetAction, filters.value);
12264
+ toggleHierarchyFilter(
12265
+ paramStore.appendParams,
12266
+ facetAction,
12267
+ optionsStore.getQueryParamName,
12268
+ filters.value
12269
+ );
12208
12270
  break;
12209
12271
  }
12210
12272
  if (scrollToResultsOptions.value.enabled) {
@@ -12571,7 +12633,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12571
12633
  const handlePageChange = (page) => {
12572
12634
  if (page > 0) {
12573
12635
  paramStore.appendParams({
12574
- params: [{ name: QUERY_PARAMS$1.PAGE, value: page.toString() }]
12636
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: page.toString() }]
12575
12637
  });
12576
12638
  if (scrollToResultsOptions.value.enabled) {
12577
12639
  scrollToSearchResults(
@@ -12641,12 +12703,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12641
12703
  },
12642
12704
  setup(__props) {
12643
12705
  const paramsStore = useParamsStore();
12706
+ const optionsStore = useOptionsStore();
12644
12707
  const select = ref(null);
12645
12708
  const handleSelect = (e) => {
12646
12709
  const value = e.target.value;
12647
12710
  paramsStore.appendParams({
12648
- params: [{ name: QUERY_PARAMS$1.LIMIT, value }],
12649
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
12711
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.LIMIT), value }],
12712
+ paramsToRemove: [optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
12650
12713
  });
12651
12714
  };
12652
12715
  return (_ctx, _cache) => {
@@ -12687,6 +12750,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12687
12750
  setup(__props) {
12688
12751
  const props = __props;
12689
12752
  const paramStore = useParamsStore();
12753
+ const optionStore = useOptionsStore();
12690
12754
  const { sort } = storeToRefs(paramStore);
12691
12755
  const selectedKey = ref("");
12692
12756
  const previousKey = ref("");
@@ -12720,8 +12784,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12720
12784
  paramStore.setSortSettings({ selectedSortKey: value, previousSortKey: previousKey.value });
12721
12785
  (_c = (_b = props.callbacks) == null ? void 0 : _b.onSortChange) == null ? void 0 : _c.call(_b, { selectedSortKey: value, previousSortKey: previousKey.value });
12722
12786
  paramStore.appendParams({
12723
- params: [{ name: QUERY_PARAMS$1.SORT, value }],
12724
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
12787
+ params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.SORT), value }],
12788
+ paramsToRemove: [optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
12725
12789
  });
12726
12790
  previousKey.value = selectedKey.value;
12727
12791
  };
@@ -13579,7 +13643,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13579
13643
  setup(__props, { emit: emit2 }) {
13580
13644
  const props = __props;
13581
13645
  const dynamicDataStore = useDynamicDataStore();
13582
- const { dynamicDataIdMap, loading } = storeToRefs(dynamicDataStore);
13646
+ const { dynamicDataIdMap, loadingIds, loading } = storeToRefs(dynamicDataStore);
13583
13647
  const elementComponent = computed(() => {
13584
13648
  switch (props.element.type) {
13585
13649
  case DocumentElementType.IMAGE:
@@ -13605,9 +13669,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13605
13669
  }
13606
13670
  return "searchResultsProductTitle";
13607
13671
  });
13608
- const isLoadingDynamicData = computed(() => {
13609
- return Boolean(props.element.dynamic && loading.value);
13610
- });
13611
13672
  const enhancedItem = computed(() => {
13612
13673
  var _a, _b, _c, _d;
13613
13674
  if (!((_a = props.item) == null ? void 0 : _a.id)) {
@@ -13622,7 +13683,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13622
13683
  const handleProductEvent = (item) => {
13623
13684
  emit2("productEvent", item);
13624
13685
  };
13686
+ const isLoadingDynamicData = (id) => {
13687
+ return Boolean(props.element.dynamic && id && loading.value && (loadingIds == null ? void 0 : loadingIds.value[id]));
13688
+ };
13625
13689
  return (_ctx, _cache) => {
13690
+ var _a;
13626
13691
  return displayElement.value ? (openBlock(), createBlock(resolveDynamicComponent(elementComponent.value), {
13627
13692
  key: 0,
13628
13693
  item: enhancedItem.value,
@@ -13630,7 +13695,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13630
13695
  labels: _ctx.labels,
13631
13696
  inStock: _ctx.inStock,
13632
13697
  link: _ctx.link,
13633
- class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData.value }),
13698
+ class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData((_a = _ctx.item) == null ? void 0 : _a.id) }),
13634
13699
  onProductEvent: handleProductEvent
13635
13700
  }, null, 40, ["item", "options", "labels", "inStock", "link", "class"])) : createCommentVNode("", true);
13636
13701
  };
@@ -14157,7 +14222,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14157
14222
  const props = __props;
14158
14223
  const searchResultStore = useSearchResultStore();
14159
14224
  const paramStore = useParamsStore();
14160
- useOptionsStore();
14225
+ const optionStore = useOptionsStore();
14161
14226
  const {
14162
14227
  hasResults,
14163
14228
  currentQueryText,
@@ -14241,7 +14306,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14241
14306
  };
14242
14307
  const goToFirstPage = () => {
14243
14308
  paramStore.appendParams({
14244
- params: [{ name: QUERY_PARAMS$1.PAGE, value: "1" }]
14309
+ params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: "1" }]
14245
14310
  });
14246
14311
  };
14247
14312
  return (_ctx, _cache) => {
@@ -14447,7 +14512,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14447
14512
  const handlePopState = () => {
14448
14513
  var _a;
14449
14514
  const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url);
14450
- paramStore.add(parseParams(searchParams));
14515
+ paramStore.add(parseParams(optionStore.getQueryParamName, searchParams));
14451
14516
  };
14452
14517
  onMounted(() => __async(this, null, function* () {
14453
14518
  var _a, _b;
@@ -14547,7 +14612,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14547
14612
  var _a;
14548
14613
  const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url, params);
14549
14614
  const publicQuery = createPublicQuery(
14550
- parseParams(searchParams),
14615
+ parseParams(optionStore.getQueryParamName, searchParams),
14551
14616
  props.options.sort,
14552
14617
  defaultSearchResultPageSize.value
14553
14618
  );
@@ -14567,10 +14632,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14567
14632
  }
14568
14633
  }
14569
14634
  const params = new URLSearchParams(window.location.search);
14570
- if (!params.has(QUERY_PARAMS$1.QUERY) && !props.initialData) {
14635
+ if (!params.has(optionStore.getQueryParamName(QUERY_PARAMS$1.QUERY)) && !props.initialData) {
14571
14636
  handleUrlChange(params);
14572
14637
  }
14573
- paramStore.add(parseParams(params));
14638
+ paramStore.add(parseParams(optionStore.getQueryParamName, params));
14574
14639
  paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
14575
14640
  };
14576
14641
  watch(searchString, () => handleParamsChange());
@@ -14604,7 +14669,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14604
14669
  );
14605
14670
  optionStore.setSearchResultOptions({ options: props.options });
14606
14671
  searchResultStore.add(__spreadValues2({}, initialData));
14607
- paramStore.add(parseParams(searchParams), props.options.ssr);
14672
+ paramStore.add(parseParams(optionStore.getQueryParamName, searchParams), props.options.ssr);
14608
14673
  paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
14609
14674
  handleResults({ queryKey: props.options.queryKey, results: initialData });
14610
14675
  }