@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.iife.js
CHANGED
|
@@ -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(
|
|
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
|
-
|
|
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(
|
|
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: [
|
|
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(
|
|
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
|
-
|
|
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) => !
|
|
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.
|
|
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[
|
|
9556
|
-
onItemSelect: _cache[
|
|
9557
|
-
onProductClick: _cache[
|
|
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:
|
|
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:
|
|
9611
|
+
key: 2,
|
|
9576
9612
|
labels: labels.value,
|
|
9577
9613
|
showTotalCount: (_a = _ctx.options.showTotalCount) != null ? _a : false,
|
|
9578
|
-
onGoToResults: _cache[
|
|
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: [
|
|
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(
|
|
12246
|
+
toggleTermFilter(
|
|
12247
|
+
paramStore.appendParams,
|
|
12248
|
+
facetAction,
|
|
12249
|
+
optionsStore.getQueryParamName,
|
|
12250
|
+
filters.value
|
|
12251
|
+
);
|
|
12200
12252
|
break;
|
|
12201
12253
|
case "range":
|
|
12202
|
-
toggleRangeFilter(
|
|
12254
|
+
toggleRangeFilter(
|
|
12255
|
+
paramStore.appendParams,
|
|
12256
|
+
facetAction,
|
|
12257
|
+
optionsStore.getQueryParamName,
|
|
12258
|
+
filters.value
|
|
12259
|
+
);
|
|
12203
12260
|
break;
|
|
12204
12261
|
case "hierarchy":
|
|
12205
|
-
toggleHierarchyFilter(
|
|
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.
|
|
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
|
}
|