@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.
- package/dist/lupaSearch.iife.js +128 -63
- package/dist/lupaSearch.js +128 -63
- package/dist/lupaSearch.mjs +128 -63
- package/dist/lupaSearch.umd.js +128 -63
- package/dist/style.css +1 -1
- package/package.json +2 -2
package/dist/lupaSearch.umd.js
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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(
|
|
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: [
|
|
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(
|
|
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
|
-
|
|
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) => !
|
|
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.
|
|
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[
|
|
9558
|
-
onItemSelect: _cache[
|
|
9559
|
-
onProductClick: _cache[
|
|
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:
|
|
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:
|
|
9613
|
+
key: 2,
|
|
9578
9614
|
labels: labels.value,
|
|
9579
9615
|
showTotalCount: (_a = _ctx.options.showTotalCount) != null ? _a : false,
|
|
9580
|
-
onGoToResults: _cache[
|
|
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: [
|
|
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(
|
|
12248
|
+
toggleTermFilter(
|
|
12249
|
+
paramStore.appendParams,
|
|
12250
|
+
facetAction,
|
|
12251
|
+
optionsStore.getQueryParamName,
|
|
12252
|
+
filters.value
|
|
12253
|
+
);
|
|
12202
12254
|
break;
|
|
12203
12255
|
case "range":
|
|
12204
|
-
toggleRangeFilter(
|
|
12256
|
+
toggleRangeFilter(
|
|
12257
|
+
paramStore.appendParams,
|
|
12258
|
+
facetAction,
|
|
12259
|
+
optionsStore.getQueryParamName,
|
|
12260
|
+
filters.value
|
|
12261
|
+
);
|
|
12205
12262
|
break;
|
|
12206
12263
|
case "hierarchy":
|
|
12207
|
-
toggleHierarchyFilter(
|
|
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.
|
|
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
|
}
|