@getlupa/client 1.9.5 → 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 +111 -56
- package/dist/lupaSearch.js +111 -56
- package/dist/lupaSearch.mjs +111 -56
- package/dist/lupaSearch.umd.js +111 -56
- 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
|
};
|
|
@@ -10176,6 +10207,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
10176
10207
|
setup(__props) {
|
|
10177
10208
|
const isOpen = ref(false);
|
|
10178
10209
|
const paramsStore = useParamsStore();
|
|
10210
|
+
const optionStore = useOptionsStore();
|
|
10179
10211
|
const searchResultStore = useSearchResultStore();
|
|
10180
10212
|
const { filters, displayFilters, currentFilterCount } = storeToRefs(searchResultStore);
|
|
10181
10213
|
const currentFilters = computed(() => filters.value);
|
|
@@ -10193,6 +10225,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
10193
10225
|
// TODO: Fix any
|
|
10194
10226
|
paramsStore.appendParams,
|
|
10195
10227
|
{ type: "terms", value: filter.value, key: filter.key },
|
|
10228
|
+
optionStore.getQueryParamName,
|
|
10196
10229
|
currentFilters.value
|
|
10197
10230
|
);
|
|
10198
10231
|
break;
|
|
@@ -10200,13 +10233,17 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
10200
10233
|
toggleHierarchyFilter(
|
|
10201
10234
|
paramsStore.appendParams,
|
|
10202
10235
|
{ type: "hierarchy", value: filter.value, key: filter.key },
|
|
10236
|
+
optionStore.getQueryParamName,
|
|
10203
10237
|
currentFilters.value,
|
|
10204
10238
|
true
|
|
10205
10239
|
);
|
|
10206
10240
|
break;
|
|
10207
10241
|
case "range":
|
|
10208
10242
|
paramsStore.removeParameters({
|
|
10209
|
-
paramsToRemove: [
|
|
10243
|
+
paramsToRemove: [
|
|
10244
|
+
optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE),
|
|
10245
|
+
`${FACET_PARAMS_TYPE.RANGE}${filter.key}`
|
|
10246
|
+
]
|
|
10210
10247
|
});
|
|
10211
10248
|
break;
|
|
10212
10249
|
}
|
|
@@ -12208,13 +12245,28 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
12208
12245
|
const handleFacetSelect = (facetAction) => {
|
|
12209
12246
|
switch (facetAction.type) {
|
|
12210
12247
|
case "terms":
|
|
12211
|
-
toggleTermFilter(
|
|
12248
|
+
toggleTermFilter(
|
|
12249
|
+
paramStore.appendParams,
|
|
12250
|
+
facetAction,
|
|
12251
|
+
optionsStore.getQueryParamName,
|
|
12252
|
+
filters.value
|
|
12253
|
+
);
|
|
12212
12254
|
break;
|
|
12213
12255
|
case "range":
|
|
12214
|
-
toggleRangeFilter(
|
|
12256
|
+
toggleRangeFilter(
|
|
12257
|
+
paramStore.appendParams,
|
|
12258
|
+
facetAction,
|
|
12259
|
+
optionsStore.getQueryParamName,
|
|
12260
|
+
filters.value
|
|
12261
|
+
);
|
|
12215
12262
|
break;
|
|
12216
12263
|
case "hierarchy":
|
|
12217
|
-
toggleHierarchyFilter(
|
|
12264
|
+
toggleHierarchyFilter(
|
|
12265
|
+
paramStore.appendParams,
|
|
12266
|
+
facetAction,
|
|
12267
|
+
optionsStore.getQueryParamName,
|
|
12268
|
+
filters.value
|
|
12269
|
+
);
|
|
12218
12270
|
break;
|
|
12219
12271
|
}
|
|
12220
12272
|
if (scrollToResultsOptions.value.enabled) {
|
|
@@ -12581,7 +12633,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
12581
12633
|
const handlePageChange = (page) => {
|
|
12582
12634
|
if (page > 0) {
|
|
12583
12635
|
paramStore.appendParams({
|
|
12584
|
-
params: [{ name: QUERY_PARAMS$1.PAGE, value: page.toString() }]
|
|
12636
|
+
params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: page.toString() }]
|
|
12585
12637
|
});
|
|
12586
12638
|
if (scrollToResultsOptions.value.enabled) {
|
|
12587
12639
|
scrollToSearchResults(
|
|
@@ -12651,12 +12703,13 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
12651
12703
|
},
|
|
12652
12704
|
setup(__props) {
|
|
12653
12705
|
const paramsStore = useParamsStore();
|
|
12706
|
+
const optionsStore = useOptionsStore();
|
|
12654
12707
|
const select = ref(null);
|
|
12655
12708
|
const handleSelect = (e) => {
|
|
12656
12709
|
const value = e.target.value;
|
|
12657
12710
|
paramsStore.appendParams({
|
|
12658
|
-
params: [{ name: QUERY_PARAMS$1.LIMIT, value }],
|
|
12659
|
-
paramsToRemove: [QUERY_PARAMS$1.PAGE]
|
|
12711
|
+
params: [{ name: optionsStore.getQueryParamName(QUERY_PARAMS$1.LIMIT), value }],
|
|
12712
|
+
paramsToRemove: [optionsStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
|
|
12660
12713
|
});
|
|
12661
12714
|
};
|
|
12662
12715
|
return (_ctx, _cache) => {
|
|
@@ -12697,6 +12750,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
12697
12750
|
setup(__props) {
|
|
12698
12751
|
const props = __props;
|
|
12699
12752
|
const paramStore = useParamsStore();
|
|
12753
|
+
const optionStore = useOptionsStore();
|
|
12700
12754
|
const { sort } = storeToRefs(paramStore);
|
|
12701
12755
|
const selectedKey = ref("");
|
|
12702
12756
|
const previousKey = ref("");
|
|
@@ -12730,8 +12784,8 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
12730
12784
|
paramStore.setSortSettings({ selectedSortKey: value, previousSortKey: previousKey.value });
|
|
12731
12785
|
(_c = (_b = props.callbacks) == null ? void 0 : _b.onSortChange) == null ? void 0 : _c.call(_b, { selectedSortKey: value, previousSortKey: previousKey.value });
|
|
12732
12786
|
paramStore.appendParams({
|
|
12733
|
-
params: [{ name: QUERY_PARAMS$1.SORT, value }],
|
|
12734
|
-
paramsToRemove: [QUERY_PARAMS$1.PAGE]
|
|
12787
|
+
params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.SORT), value }],
|
|
12788
|
+
paramsToRemove: [optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE)]
|
|
12735
12789
|
});
|
|
12736
12790
|
previousKey.value = selectedKey.value;
|
|
12737
12791
|
};
|
|
@@ -13589,7 +13643,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
13589
13643
|
setup(__props, { emit: emit2 }) {
|
|
13590
13644
|
const props = __props;
|
|
13591
13645
|
const dynamicDataStore = useDynamicDataStore();
|
|
13592
|
-
const { dynamicDataIdMap, loading } = storeToRefs(dynamicDataStore);
|
|
13646
|
+
const { dynamicDataIdMap, loadingIds, loading } = storeToRefs(dynamicDataStore);
|
|
13593
13647
|
const elementComponent = computed(() => {
|
|
13594
13648
|
switch (props.element.type) {
|
|
13595
13649
|
case DocumentElementType.IMAGE:
|
|
@@ -13615,9 +13669,6 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
13615
13669
|
}
|
|
13616
13670
|
return "searchResultsProductTitle";
|
|
13617
13671
|
});
|
|
13618
|
-
const isLoadingDynamicData = computed(() => {
|
|
13619
|
-
return Boolean(props.element.dynamic && loading.value);
|
|
13620
|
-
});
|
|
13621
13672
|
const enhancedItem = computed(() => {
|
|
13622
13673
|
var _a, _b, _c, _d;
|
|
13623
13674
|
if (!((_a = props.item) == null ? void 0 : _a.id)) {
|
|
@@ -13632,7 +13683,11 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
13632
13683
|
const handleProductEvent = (item) => {
|
|
13633
13684
|
emit2("productEvent", item);
|
|
13634
13685
|
};
|
|
13686
|
+
const isLoadingDynamicData = (id) => {
|
|
13687
|
+
return Boolean(props.element.dynamic && id && loading.value && (loadingIds == null ? void 0 : loadingIds.value[id]));
|
|
13688
|
+
};
|
|
13635
13689
|
return (_ctx, _cache) => {
|
|
13690
|
+
var _a;
|
|
13636
13691
|
return displayElement.value ? (openBlock(), createBlock(resolveDynamicComponent(elementComponent.value), {
|
|
13637
13692
|
key: 0,
|
|
13638
13693
|
item: enhancedItem.value,
|
|
@@ -13640,7 +13695,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
13640
13695
|
labels: _ctx.labels,
|
|
13641
13696
|
inStock: _ctx.inStock,
|
|
13642
13697
|
link: _ctx.link,
|
|
13643
|
-
class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData.
|
|
13698
|
+
class: normalizeClass({ "lupa-loading-dynamic-data": isLoadingDynamicData((_a = _ctx.item) == null ? void 0 : _a.id) }),
|
|
13644
13699
|
onProductEvent: handleProductEvent
|
|
13645
13700
|
}, null, 40, ["item", "options", "labels", "inStock", "link", "class"])) : createCommentVNode("", true);
|
|
13646
13701
|
};
|
|
@@ -14167,7 +14222,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14167
14222
|
const props = __props;
|
|
14168
14223
|
const searchResultStore = useSearchResultStore();
|
|
14169
14224
|
const paramStore = useParamsStore();
|
|
14170
|
-
useOptionsStore();
|
|
14225
|
+
const optionStore = useOptionsStore();
|
|
14171
14226
|
const {
|
|
14172
14227
|
hasResults,
|
|
14173
14228
|
currentQueryText,
|
|
@@ -14251,7 +14306,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14251
14306
|
};
|
|
14252
14307
|
const goToFirstPage = () => {
|
|
14253
14308
|
paramStore.appendParams({
|
|
14254
|
-
params: [{ name: QUERY_PARAMS$1.PAGE, value: "1" }]
|
|
14309
|
+
params: [{ name: optionStore.getQueryParamName(QUERY_PARAMS$1.PAGE), value: "1" }]
|
|
14255
14310
|
});
|
|
14256
14311
|
};
|
|
14257
14312
|
return (_ctx, _cache) => {
|
|
@@ -14457,7 +14512,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14457
14512
|
const handlePopState = () => {
|
|
14458
14513
|
var _a;
|
|
14459
14514
|
const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url);
|
|
14460
|
-
paramStore.add(parseParams(searchParams));
|
|
14515
|
+
paramStore.add(parseParams(optionStore.getQueryParamName, searchParams));
|
|
14461
14516
|
};
|
|
14462
14517
|
onMounted(() => __async(this, null, function* () {
|
|
14463
14518
|
var _a, _b;
|
|
@@ -14557,7 +14612,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14557
14612
|
var _a;
|
|
14558
14613
|
const searchParams = getSearchParams((_a = props.options.ssr) == null ? void 0 : _a.url, params);
|
|
14559
14614
|
const publicQuery = createPublicQuery(
|
|
14560
|
-
parseParams(searchParams),
|
|
14615
|
+
parseParams(optionStore.getQueryParamName, searchParams),
|
|
14561
14616
|
props.options.sort,
|
|
14562
14617
|
defaultSearchResultPageSize.value
|
|
14563
14618
|
);
|
|
@@ -14577,10 +14632,10 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14577
14632
|
}
|
|
14578
14633
|
}
|
|
14579
14634
|
const params = new URLSearchParams(window.location.search);
|
|
14580
|
-
if (!params.has(QUERY_PARAMS$1.QUERY) && !props.initialData) {
|
|
14635
|
+
if (!params.has(optionStore.getQueryParamName(QUERY_PARAMS$1.QUERY)) && !props.initialData) {
|
|
14581
14636
|
handleUrlChange(params);
|
|
14582
14637
|
}
|
|
14583
|
-
paramStore.add(parseParams(params));
|
|
14638
|
+
paramStore.add(parseParams(optionStore.getQueryParamName, params));
|
|
14584
14639
|
paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
|
|
14585
14640
|
};
|
|
14586
14641
|
watch(searchString, () => handleParamsChange());
|
|
@@ -14614,7 +14669,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
|
14614
14669
|
);
|
|
14615
14670
|
optionStore.setSearchResultOptions({ options: props.options });
|
|
14616
14671
|
searchResultStore.add(__spreadValues2({}, initialData));
|
|
14617
|
-
paramStore.add(parseParams(searchParams), props.options.ssr);
|
|
14672
|
+
paramStore.add(parseParams(optionStore.getQueryParamName, searchParams), props.options.ssr);
|
|
14618
14673
|
paramStore.setDefaultLimit(defaultSearchResultPageSize.value);
|
|
14619
14674
|
handleResults({ queryKey: props.options.queryKey, results: initialData });
|
|
14620
14675
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@getlupa/client",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"main": "dist/lupaSearch.js",
|
|
5
5
|
"module": "dist/index.mjs",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
},
|
|
21
21
|
"devDependencies": {
|
|
22
22
|
"@getlupa/client-sdk": "^1.3.4",
|
|
23
|
-
"@getlupa/vue": "0.
|
|
23
|
+
"@getlupa/vue": "0.10.0",
|
|
24
24
|
"@rushstack/eslint-patch": "^1.3.2",
|
|
25
25
|
"@tsconfig/node18": "^2.0.1",
|
|
26
26
|
"@types/jsdom": "^21.1.1",
|