@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.
@@ -6892,6 +6892,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6892
6892
  const setInitialFilters = ({ initialFilters: initialFilters2 }) => {
6893
6893
  searchResultInitialFilters.value = initialFilters2;
6894
6894
  };
6895
+ const getQueryParamName = (param) => {
6896
+ var _a;
6897
+ const nameMap = searchBoxOptions.value.queryParameterNames;
6898
+ return (_a = nameMap == null ? void 0 : nameMap[param]) != null ? _a : param;
6899
+ };
6895
6900
  return {
6896
6901
  searchBoxOptions,
6897
6902
  searchResultOptions,
@@ -6906,7 +6911,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
6906
6911
  setSearchBoxOptions,
6907
6912
  setTrackingOptions,
6908
6913
  setSearchResultOptions,
6909
- setInitialFilters
6914
+ setInitialFilters,
6915
+ getQueryParamName
6910
6916
  };
6911
6917
  });
6912
6918
  var DocumentElementType = /* @__PURE__ */ ((DocumentElementType2) => {
@@ -7159,9 +7165,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7159
7165
  return void 0;
7160
7166
  }
7161
7167
  };
7162
- const parseRegularKeys = (regularKeys, searchParams) => {
7168
+ const parseRegularKeys = (regularKeys, searchParams, getQueryParamName) => {
7163
7169
  const params = /* @__PURE__ */ Object.create({});
7164
- const keys = reverseKeyValue(QUERY_PARAMS$1);
7170
+ const keys = reverseKeyValue({
7171
+ QUERY: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY,
7172
+ LIMIT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.LIMIT) : QUERY_PARAMS$1.LIMIT,
7173
+ PAGE: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE,
7174
+ SORT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.SORT) : QUERY_PARAMS$1.SORT
7175
+ });
7165
7176
  for (const key of regularKeys) {
7166
7177
  const rawKey = keys[key] || key;
7167
7178
  params[rawKey] = parseParam(key, searchParams);
@@ -7203,16 +7214,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7203
7214
  }
7204
7215
  return params;
7205
7216
  };
7206
- const parseParams = (searchParams) => {
7217
+ const parseParams = (getQueryParamName, searchParams) => {
7207
7218
  const params = /* @__PURE__ */ Object.create({});
7208
7219
  if (!searchParams)
7209
7220
  return params;
7210
7221
  const paramKeys = Array.from(searchParams.keys());
7211
7222
  const facetKeys = paramKeys.filter((k) => isFacetKey(k));
7212
7223
  const regularKeys = paramKeys.filter((k) => !isFacetKey(k));
7213
- return __spreadValues2(__spreadValues2({
7224
+ const r = __spreadValues2(__spreadValues2({
7214
7225
  [QUERY_PARAMS_PARSED.QUERY]: ""
7215
- }, parseRegularKeys(regularKeys, searchParams)), parseFacetKeys(facetKeys, searchParams));
7226
+ }, parseRegularKeys(regularKeys, searchParams, getQueryParamName)), parseFacetKeys(facetKeys, searchParams));
7227
+ return r;
7216
7228
  };
7217
7229
  const appendParam = (url, { name, value }, encode = true) => {
7218
7230
  if (Array.isArray(value)) {
@@ -7233,10 +7245,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7233
7245
  url.searchParams.delete(param.name);
7234
7246
  param.value.forEach((v) => url.searchParams.append(param.name, encodeParam(v)));
7235
7247
  };
7236
- const getRemovableParams = (url, paramsToRemove) => {
7248
+ const getRemovableParams = (url, getQueryParamName, paramsToRemove) => {
7237
7249
  if (paramsToRemove === "all") {
7250
+ const params = {
7251
+ QUERY: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY,
7252
+ LIMIT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.LIMIT) : QUERY_PARAMS$1.LIMIT,
7253
+ PAGE: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE,
7254
+ SORT: getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.SORT) : QUERY_PARAMS$1.SORT
7255
+ };
7238
7256
  return [
7239
- ...Object.values(QUERY_PARAMS$1),
7257
+ ...Object.values(params),
7240
7258
  ...Array.from(url.searchParams.keys()).filter((k) => isFacetKey(k))
7241
7259
  ];
7242
7260
  }
@@ -7267,12 +7285,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7267
7285
  }
7268
7286
  return link;
7269
7287
  };
7270
- const generateResultLink = (link, searchText, facet) => {
7288
+ const generateResultLink = (link, getQueryParamName, searchText, facet) => {
7271
7289
  if (!searchText) {
7272
7290
  return link;
7273
7291
  }
7274
7292
  const facetParam = facet ? `&${FACET_PARAMS_TYPE.TERMS}${encodeParam(facet.key)}=${encodeParam(facet.title)}` : "";
7275
- const queryParam = `?${QUERY_PARAMS$1.QUERY}=${encodeParam(searchText)}`;
7293
+ const queryParam = `?${getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.QUERY) : QUERY_PARAMS$1.QUERY}=${encodeParam(searchText)}`;
7276
7294
  return `${link}${queryParam}${facetParam}`;
7277
7295
  };
7278
7296
  const getRelativePath = (link) => {
@@ -7301,8 +7319,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7301
7319
  event == null ? void 0 : event.preventDefault();
7302
7320
  emitRoutingEvent(link);
7303
7321
  };
7304
- const redirectToResultsPage = (link, searchText, facet, routingBehavior = "direct-link") => {
7305
- const url = generateResultLink(link, searchText, facet);
7322
+ const redirectToResultsPage = (link, searchText, getQueryParamName, facet, routingBehavior = "direct-link") => {
7323
+ const url = generateResultLink(link, getQueryParamName, searchText, facet);
7306
7324
  if (routingBehavior === "event") {
7307
7325
  emitRoutingEvent(url);
7308
7326
  } else {
@@ -7327,15 +7345,15 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7327
7345
  value
7328
7346
  };
7329
7347
  };
7330
- const toggleTermFilter = (appendParams, facetAction, currentFilters) => {
7348
+ const toggleTermFilter = (appendParams, facetAction, getQueryParamName, currentFilters) => {
7331
7349
  const currentFilter = currentFilters == null ? void 0 : currentFilters[facetAction.key];
7332
7350
  const newParams = toggleTermParam(currentFilter, facetAction.value);
7333
7351
  appendParams({
7334
7352
  params: [getFacetParam(facetAction.key, newParams)],
7335
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
7353
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE]
7336
7354
  });
7337
7355
  };
7338
- const toggleHierarchyFilter = (appendParams, facetAction, currentFilters, removeAllLevels = false) => {
7356
+ const toggleHierarchyFilter = (appendParams, facetAction, getQueryParamName, currentFilters, removeAllLevels = false) => {
7339
7357
  var _a;
7340
7358
  const currentFilter = currentFilters == null ? void 0 : currentFilters[facetAction.key];
7341
7359
  const newParams = toggleHierarchyParam(
@@ -7345,10 +7363,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7345
7363
  );
7346
7364
  appendParams({
7347
7365
  params: [getFacetParam(facetAction.key, newParams, FACET_PARAMS_TYPE.HIERARCHY)],
7348
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
7366
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE]
7349
7367
  });
7350
7368
  };
7351
- const toggleRangeFilter = (appendParams, facetAction, currentFilters) => {
7369
+ const toggleRangeFilter = (appendParams, facetAction, getQueryParamName, currentFilters) => {
7352
7370
  const currentFilter = rangeFilterToString(
7353
7371
  currentFilters == null ? void 0 : currentFilters[facetAction.key],
7354
7372
  FACET_RANGE_SEPARATOR
@@ -7357,7 +7375,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7357
7375
  facetValue = currentFilter === facetValue ? "" : facetValue;
7358
7376
  appendParams({
7359
7377
  params: [getFacetParam(facetAction.key, facetValue, FACET_PARAMS_TYPE.RANGE)],
7360
- paramsToRemove: [QUERY_PARAMS$1.PAGE],
7378
+ paramsToRemove: [getQueryParamName ? getQueryParamName(QUERY_PARAMS$1.PAGE) : QUERY_PARAMS$1.PAGE],
7361
7379
  encode: false
7362
7380
  });
7363
7381
  };
@@ -7486,7 +7504,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7486
7504
  const navigate = (url) => {
7487
7505
  var _a, _b, _c;
7488
7506
  window.history.pushState("", "Append params", url.pathname + url.search);
7489
- const params2 = parseParams(url.searchParams);
7507
+ const params2 = parseParams(optionsStore.getQueryParamName, url.searchParams);
7490
7508
  (_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, {
7491
7509
  params: params2
7492
7510
  });
@@ -7504,7 +7522,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7504
7522
  const paramsToRemove = Array.from(url.searchParams.keys()).filter(isFacetKey);
7505
7523
  removeParams(url, paramsToRemove);
7506
7524
  navigate(url);
7507
- params.value = parseParams(url.searchParams);
7525
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7508
7526
  searchString.value = url.search;
7509
7527
  };
7510
7528
  const removeParameters = ({
@@ -7512,13 +7530,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7512
7530
  save = true
7513
7531
  }) => {
7514
7532
  const url = getPageUrl();
7515
- paramsToRemove = getRemovableParams(url, paramsToRemove);
7533
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
7516
7534
  removeParams(url, paramsToRemove);
7517
7535
  navigate(url);
7518
7536
  if (!save) {
7519
7537
  return;
7520
7538
  }
7521
- params.value = parseParams(url.searchParams);
7539
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7522
7540
  searchString.value = url.search;
7523
7541
  };
7524
7542
  const handleNoResultsFlag = ({
@@ -7560,13 +7578,22 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7560
7578
  })
7561
7579
  ] : [];
7562
7580
  appendParams({
7563
- params: [{ name: QUERY_PARAMS$1.QUERY, value: searchText }, ...facetParam],
7581
+ params: [
7582
+ { name: optionsStore.getQueryParamName(QUERY_PARAMS$1.QUERY), value: searchText },
7583
+ ...facetParam
7584
+ ],
7564
7585
  paramsToRemove: "all",
7565
7586
  searchResultsLink: searchResultsLink.value
7566
7587
  });
7567
7588
  } else {
7568
7589
  const routing = (_a = optionsStore.boxRoutingBehavior) != null ? _a : "direct-link";
7569
- redirectToResultsPage(searchResultsLink.value, searchText, facet, routing);
7590
+ redirectToResultsPage(
7591
+ searchResultsLink.value,
7592
+ searchText,
7593
+ optionsStore.getQueryParamName,
7594
+ facet,
7595
+ routing
7596
+ );
7570
7597
  }
7571
7598
  };
7572
7599
  const appendParams = ({
@@ -7580,14 +7607,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
7580
7607
  return { params: params.value };
7581
7608
  }
7582
7609
  const url = getPageUrl(searchResultsLink2);
7583
- paramsToRemove = getRemovableParams(url, paramsToRemove);
7610
+ paramsToRemove = getRemovableParams(url, optionsStore.getQueryParamName, paramsToRemove);
7584
7611
  removeParams(url, paramsToRemove);
7585
7612
  newParams.forEach((p2) => appendParam(url, p2, encode));
7586
7613
  navigate(url);
7587
7614
  if (!save) {
7588
7615
  return;
7589
7616
  }
7590
- params.value = parseParams(url.searchParams);
7617
+ params.value = parseParams(optionsStore.getQueryParamName, url.searchParams);
7591
7618
  searchString.value = url.search;
7592
7619
  };
7593
7620
  const setDefaultLimit = (newDefaultLimit) => {
@@ -8322,8 +8349,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8322
8349
  const useDynamicDataStore = defineStore("dynamicData", () => {
8323
8350
  const loading = ref(false);
8324
8351
  const dynamicDataIdMap = ref({});
8352
+ const loadingIds = ref({});
8325
8353
  const optionsStore = useOptionsStore();
8326
- const loadedIds = computed(() => Object.keys(dynamicDataIdMap.value));
8354
+ computed(() => Object.keys(dynamicDataIdMap.value));
8327
8355
  const searchResultOptions = computed(() => optionsStore.searchResultOptions);
8328
8356
  const searchBoxOptions = computed(() => optionsStore.searchBoxOptions);
8329
8357
  const dynamicSearchResultData = computed(() => {
@@ -8363,11 +8391,12 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8363
8391
  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 : [];
8364
8392
  let requestedIds = [...resultIds, ...similarQueryResultIds];
8365
8393
  if (isCacheEnabled.value) {
8366
- requestedIds = requestedIds.filter((i) => !loadedIds.value.includes(i));
8394
+ requestedIds = requestedIds.filter((i) => !dynamicDataIdMap.value[`${i}`]);
8367
8395
  }
8368
8396
  if (!requestedIds.length) {
8369
8397
  return;
8370
8398
  }
8399
+ loadingIds.value = requestedIds.reduce((a, c2) => __spreadProps2(__spreadValues2({}, a), { [c2]: true }), {});
8371
8400
  loading.value = true;
8372
8401
  try {
8373
8402
  const dynamicData = dynamicSearchResultData.value || dynamicSearchBoxData.value;
@@ -8377,15 +8406,16 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8377
8406
  const dynamicDataResult = (_f = yield dynamicData == null ? void 0 : dynamicData.handler(requestedIds)) != null ? _f : [];
8378
8407
  const seed = {};
8379
8408
  const dynamicDataIdMapValue = dynamicDataResult.reduce(
8380
- (a, c2) => __spreadProps2(__spreadValues2({}, a), { [c2.id]: c2 }),
8409
+ (a, c2) => __spreadProps2(__spreadValues2({}, a), { [`${c2.id}`]: c2 }),
8381
8410
  seed
8382
8411
  );
8383
8412
  dynamicDataIdMap.value = __spreadValues2(__spreadValues2({}, dynamicDataIdMap.value), dynamicDataIdMapValue);
8384
8413
  } finally {
8385
8414
  loading.value = false;
8415
+ loadingIds.value = {};
8386
8416
  }
8387
8417
  });
8388
- return { dynamicDataIdMap, loading, enhanceSearchResultsWithDynamicData };
8418
+ return { dynamicDataIdMap, loading, loadingIds, enhanceSearchResultsWithDynamicData };
8389
8419
  });
8390
8420
  const joinUrlParts = (...parts) => {
8391
8421
  var _a, _b, _c;
@@ -8903,7 +8933,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8903
8933
  setup(__props) {
8904
8934
  const props = __props;
8905
8935
  const dynamicDataStore = useDynamicDataStore();
8906
- const { loading, dynamicDataIdMap } = storeToRefs(dynamicDataStore);
8936
+ const { loading, loadingIds, dynamicDataIdMap } = storeToRefs(dynamicDataStore);
8907
8937
  const elementComponent = computed(() => {
8908
8938
  switch (props.element.type) {
8909
8939
  case DocumentElementType.IMAGE:
@@ -8928,9 +8958,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8928
8958
  const displayElement = computed(() => {
8929
8959
  return props.element.display ? props.element.display(props.item) : true;
8930
8960
  });
8931
- const isLoadingDynamicData = computed(() => {
8932
- return Boolean(props.element.dynamic && loading.value);
8933
- });
8934
8961
  const enhancedItem = computed(() => {
8935
8962
  var _a, _b, _c, _d;
8936
8963
  if (!((_a = props.item) == null ? void 0 : _a.id)) {
@@ -8939,13 +8966,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
8939
8966
  const enhancementData = (_d = (_c = dynamicDataIdMap.value) == null ? void 0 : _c[(_b = props.item) == null ? void 0 : _b.id]) != null ? _d : {};
8940
8967
  return __spreadValues2(__spreadValues2({}, props.item), enhancementData);
8941
8968
  });
8969
+ const isLoadingDynamicData = (id) => {
8970
+ return Boolean(props.element.dynamic && id && loading.value && (loadingIds == null ? void 0 : loadingIds.value[id]));
8971
+ };
8942
8972
  return (_ctx, _cache) => {
8973
+ var _a;
8943
8974
  return displayElement.value ? (openBlock(), createBlock(resolveDynamicComponent(elementComponent.value), {
8944
8975
  key: 0,
8945
8976
  item: enhancedItem.value,
8946
8977
  options: _ctx.element,
8947
8978
  labels: _ctx.labels,
8948
- class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData.value }),
8979
+ class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData((_a = _ctx.item) == null ? void 0 : _a.id) }),
8949
8980
  inStock: _ctx.isInStock
8950
8981
  }, null, 8, ["item", "options", "labels", "class", "inStock"])) : createCommentVNode("", true);
8951
8982
  };
@@ -9528,6 +9559,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9528
9559
  ref: panelContainer
9529
9560
  }, [
9530
9561
  displayResults.value ? (openBlock(), createElementBlock("div", _hoisted_1$Y, [
9562
+ labels.value.closePanel ? (openBlock(), createElementBlock("a", {
9563
+ key: 0,
9564
+ class: "lupa-search-box-close-panel",
9565
+ onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
9566
+ }, toDisplayString(labels.value.closePanel), 1)) : createCommentVNode("", true),
9531
9567
  createBaseVNode("div", {
9532
9568
  class: "lupa-main-panel",
9533
9569
  style: normalizeStyle(expandOnSinglePanel.value ? { display: "block" } : {}),
@@ -9552,9 +9588,9 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9552
9588
  debounce: _ctx.options.debounce,
9553
9589
  inputValue: getInput(panel),
9554
9590
  labels: labels.value,
9555
- onFetched: _cache[0] || (_cache[0] = (data) => _ctx.$emit("fetched", data)),
9556
- onItemSelect: _cache[1] || (_cache[1] = (item) => _ctx.$emit("itemSelect", item)),
9557
- onProductClick: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("product-click"))
9591
+ onFetched: _cache[1] || (_cache[1] = (data) => _ctx.$emit("fetched", data)),
9592
+ onItemSelect: _cache[2] || (_cache[2] = (item) => _ctx.$emit("itemSelect", item)),
9593
+ onProductClick: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("product-click"))
9558
9594
  }, createSlots({ _: 2 }, [
9559
9595
  _ctx.$slots.productCard ? {
9560
9596
  name: "productCard",
@@ -9568,14 +9604,14 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9568
9604
  }), 128))
9569
9605
  ], 4),
9570
9606
  !unref(hasAnyResults) && _ctx.options.showNoResultsPanel ? (openBlock(), createBlock(_sfc_main$1h, {
9571
- key: 0,
9607
+ key: 1,
9572
9608
  labels: labels.value
9573
9609
  }, null, 8, ["labels"])) : createCommentVNode("", true),
9574
9610
  unref(hasAnyResults) || !_ctx.options.hideMoreResultsButtonOnNoResults ? (openBlock(), createBlock(_sfc_main$1k, {
9575
- key: 1,
9611
+ key: 2,
9576
9612
  labels: labels.value,
9577
9613
  showTotalCount: (_a = _ctx.options.showTotalCount) != null ? _a : false,
9578
- onGoToResults: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("go-to-results"))
9614
+ onGoToResults: _cache[4] || (_cache[4] = ($event) => _ctx.$emit("go-to-results"))
9579
9615
  }, null, 8, ["labels", "showTotalCount"])) : createCommentVNode("", true)
9580
9616
  ])) : displayHistory.value ? (openBlock(), createElementBlock("div", _hoisted_5$e, [
9581
9617
  createVNode(_sfc_main$1i, {
@@ -9686,6 +9722,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9686
9722
  opened.value = false;
9687
9723
  suggestedValue.value = defaultSuggestedValue;
9688
9724
  };
9725
+ const close = () => {
9726
+ opened.value = false;
9727
+ suggestedValue.value = defaultSuggestedValue;
9728
+ };
9689
9729
  const handleKeyDown = (e) => {
9690
9730
  var _a2, _b;
9691
9731
  if (!opened.value) {
@@ -9867,7 +9907,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
9867
9907
  onFetched: handleItemsFetch,
9868
9908
  onItemSelect: handleItemSelect,
9869
9909
  onGoToResults: handleSearch,
9870
- onProductClick: handleProductClick
9910
+ onProductClick: handleProductClick,
9911
+ onClose: close
9871
9912
  }, createSlots({ _: 2 }, [
9872
9913
  _ctx.$slots.productCard ? {
9873
9914
  name: "productCard",
@@ -10164,6 +10205,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10164
10205
  setup(__props) {
10165
10206
  const isOpen = ref(false);
10166
10207
  const paramsStore = useParamsStore();
10208
+ const optionStore = useOptionsStore();
10167
10209
  const searchResultStore = useSearchResultStore();
10168
10210
  const { filters, displayFilters, currentFilterCount } = storeToRefs(searchResultStore);
10169
10211
  const currentFilters = computed(() => filters.value);
@@ -10181,6 +10223,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10181
10223
  // TODO: Fix any
10182
10224
  paramsStore.appendParams,
10183
10225
  { type: "terms", value: filter.value, key: filter.key },
10226
+ optionStore.getQueryParamName,
10184
10227
  currentFilters.value
10185
10228
  );
10186
10229
  break;
@@ -10188,13 +10231,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
10188
10231
  toggleHierarchyFilter(
10189
10232
  paramsStore.appendParams,
10190
10233
  { type: "hierarchy", value: filter.value, key: filter.key },
10234
+ optionStore.getQueryParamName,
10191
10235
  currentFilters.value,
10192
10236
  true
10193
10237
  );
10194
10238
  break;
10195
10239
  case "range":
10196
10240
  paramsStore.removeParameters({
10197
- paramsToRemove: [QUERY_PARAMS$1.PAGE, `${FACET_PARAMS_TYPE.RANGE}${filter.key}`]
10241
+ paramsToRemove: [
10242
+ optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE),
10243
+ `${FACET_PARAMS_TYPE.RANGE}${filter.key}`
10244
+ ]
10198
10245
  });
10199
10246
  break;
10200
10247
  }
@@ -12196,13 +12243,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12196
12243
  const handleFacetSelect = (facetAction) => {
12197
12244
  switch (facetAction.type) {
12198
12245
  case "terms":
12199
- toggleTermFilter(paramStore.appendParams, facetAction, filters.value);
12246
+ toggleTermFilter(
12247
+ paramStore.appendParams,
12248
+ facetAction,
12249
+ optionsStore.getQueryParamName,
12250
+ filters.value
12251
+ );
12200
12252
  break;
12201
12253
  case "range":
12202
- toggleRangeFilter(paramStore.appendParams, facetAction, filters.value);
12254
+ toggleRangeFilter(
12255
+ paramStore.appendParams,
12256
+ facetAction,
12257
+ optionsStore.getQueryParamName,
12258
+ filters.value
12259
+ );
12203
12260
  break;
12204
12261
  case "hierarchy":
12205
- toggleHierarchyFilter(paramStore.appendParams, facetAction, filters.value);
12262
+ toggleHierarchyFilter(
12263
+ paramStore.appendParams,
12264
+ facetAction,
12265
+ optionsStore.getQueryParamName,
12266
+ filters.value
12267
+ );
12206
12268
  break;
12207
12269
  }
12208
12270
  if (scrollToResultsOptions.value.enabled) {
@@ -12569,7 +12631,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12569
12631
  const handlePageChange = (page) => {
12570
12632
  if (page > 0) {
12571
12633
  paramStore.appendParams({
12572
- params: [{ name: QUERY_PARAMS$1.PAGE, value: page.toString() }]
12634
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: page.toString() }]
12573
12635
  });
12574
12636
  if (scrollToResultsOptions.value.enabled) {
12575
12637
  scrollToSearchResults(
@@ -12639,12 +12701,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12639
12701
  },
12640
12702
  setup(__props) {
12641
12703
  const paramsStore = useParamsStore();
12704
+ const optionsStore = useOptionsStore();
12642
12705
  const select = ref(null);
12643
12706
  const handleSelect = (e) => {
12644
12707
  const value = e.target.value;
12645
12708
  paramsStore.appendParams({
12646
- params: [{ name: QUERY_PARAMS$1.LIMIT, value }],
12647
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
12709
+ params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.LIMIT), value }],
12710
+ paramsToRemove: [optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
12648
12711
  });
12649
12712
  };
12650
12713
  return (_ctx, _cache) => {
@@ -12685,6 +12748,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12685
12748
  setup(__props) {
12686
12749
  const props = __props;
12687
12750
  const paramStore = useParamsStore();
12751
+ const optionStore = useOptionsStore();
12688
12752
  const { sort } = storeToRefs(paramStore);
12689
12753
  const selectedKey = ref("");
12690
12754
  const previousKey = ref("");
@@ -12718,8 +12782,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
12718
12782
  paramStore.setSortSettings({ selectedSortKey: value, previousSortKey: previousKey.value });
12719
12783
  (_c = (_b = props.callbacks) == null ? void 0 : _b.onSortChange) == null ? void 0 : _c.call(_b, { selectedSortKey: value, previousSortKey: previousKey.value });
12720
12784
  paramStore.appendParams({
12721
- params: [{ name: QUERY_PARAMS$1.SORT, value }],
12722
- paramsToRemove: [QUERY_PARAMS$1.PAGE]
12785
+ params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.SORT), value }],
12786
+ paramsToRemove: [optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
12723
12787
  });
12724
12788
  previousKey.value = selectedKey.value;
12725
12789
  };
@@ -13577,7 +13641,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13577
13641
  setup(__props, { emit: emit2 }) {
13578
13642
  const props = __props;
13579
13643
  const dynamicDataStore = useDynamicDataStore();
13580
- const { dynamicDataIdMap, loading } = storeToRefs(dynamicDataStore);
13644
+ const { dynamicDataIdMap, loadingIds, loading } = storeToRefs(dynamicDataStore);
13581
13645
  const elementComponent = computed(() => {
13582
13646
  switch (props.element.type) {
13583
13647
  case DocumentElementType.IMAGE:
@@ -13603,9 +13667,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13603
13667
  }
13604
13668
  return "searchResultsProductTitle";
13605
13669
  });
13606
- const isLoadingDynamicData = computed(() => {
13607
- return Boolean(props.element.dynamic && loading.value);
13608
- });
13609
13670
  const enhancedItem = computed(() => {
13610
13671
  var _a, _b, _c, _d;
13611
13672
  if (!((_a = props.item) == null ? void 0 : _a.id)) {
@@ -13620,7 +13681,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13620
13681
  const handleProductEvent = (item) => {
13621
13682
  emit2("productEvent", item);
13622
13683
  };
13684
+ const isLoadingDynamicData = (id) => {
13685
+ return Boolean(props.element.dynamic && id && loading.value && (loadingIds == null ? void 0 : loadingIds.value[id]));
13686
+ };
13623
13687
  return (_ctx, _cache) => {
13688
+ var _a;
13624
13689
  return displayElement.value ? (openBlock(), createBlock(resolveDynamicComponent(elementComponent.value), {
13625
13690
  key: 0,
13626
13691
  item: enhancedItem.value,
@@ -13628,7 +13693,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
13628
13693
  labels: _ctx.labels,
13629
13694
  inStock: _ctx.inStock,
13630
13695
  link: _ctx.link,
13631
- class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData.value }),
13696
+ class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData((_a = _ctx.item) == null ? void 0 : _a.id) }),
13632
13697
  onProductEvent: handleProductEvent
13633
13698
  }, null, 40, ["item", "options", "labels", "inStock", "link", "class"])) : createCommentVNode("", true);
13634
13699
  };
@@ -14155,7 +14220,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14155
14220
  const props = __props;
14156
14221
  const searchResultStore = useSearchResultStore();
14157
14222
  const paramStore = useParamsStore();
14158
- useOptionsStore();
14223
+ const optionStore = useOptionsStore();
14159
14224
  const {
14160
14225
  hasResults,
14161
14226
  currentQueryText,
@@ -14239,7 +14304,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14239
14304
  };
14240
14305
  const goToFirstPage = () => {
14241
14306
  paramStore.appendParams({
14242
- params: [{ name: QUERY_PARAMS$1.PAGE, value: "1" }]
14307
+ params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: "1" }]
14243
14308
  });
14244
14309
  };
14245
14310
  return (_ctx, _cache) => {
@@ -14445,7 +14510,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14445
14510
  const handlePopState = () => {
14446
14511
  var _a;
14447
14512
  const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url);
14448
- paramStore.add(parseParams(searchParams));
14513
+ paramStore.add(parseParams(optionStore.getQueryParamName, searchParams));
14449
14514
  };
14450
14515
  onMounted(() => __async(this, null, function* () {
14451
14516
  var _a, _b;
@@ -14545,7 +14610,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14545
14610
  var _a;
14546
14611
  const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url, params);
14547
14612
  const publicQuery = createPublicQuery(
14548
- parseParams(searchParams),
14613
+ parseParams(optionStore.getQueryParamName, searchParams),
14549
14614
  props.options.sort,
14550
14615
  defaultSearchResultPageSize.value
14551
14616
  );
@@ -14565,10 +14630,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14565
14630
  }
14566
14631
  }
14567
14632
  const params = new URLSearchParams(window.location.search);
14568
- if (!params.has(QUERY_PARAMS$1.QUERY) && !props.initialData) {
14633
+ if (!params.has(optionStore.getQueryParamName(QUERY_PARAMS$1.QUERY)) && !props.initialData) {
14569
14634
  handleUrlChange(params);
14570
14635
  }
14571
- paramStore.add(parseParams(params));
14636
+ paramStore.add(parseParams(optionStore.getQueryParamName, params));
14572
14637
  paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
14573
14638
  };
14574
14639
  watch(searchString, () => handleParamsChange());
@@ -14602,7 +14667,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
14602
14667
  );
14603
14668
  optionStore.setSearchResultOptions({ options: props.options });
14604
14669
  searchResultStore.add(__spreadValues2({}, initialData));
14605
- paramStore.add(parseParams(searchParams), props.options.ssr);
14670
+ paramStore.add(parseParams(optionStore.getQueryParamName, searchParams), props.options.ssr);
14606
14671
  paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
14607
14672
  handleResults({ queryKey: props.options.queryKey, results: initialData });
14608
14673
  }