@nosto/search-js 1.7.5 → 1.7.6
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/README.md +7 -1
- package/dist/InfiniteScrollWithObserver-DbErxedF.cjs +1 -0
- package/dist/InfiniteScrollWithObserver-kuSGeBWr.js +418 -0
- package/dist/preact/preact.cjs.js +1 -1
- package/dist/preact/preact.d.ts +0 -1
- package/dist/preact/preact.es.js +269 -665
- package/dist/preact-legacy/preact-legacy.cjs.js +1 -0
- package/dist/preact-legacy/preact-legacy.d.ts +4 -0
- package/dist/preact-legacy/preact-legacy.es.js +6 -0
- package/package.json +13 -8
package/dist/preact/preact.es.js
CHANGED
|
@@ -1,566 +1,171 @@
|
|
|
1
|
-
import { isBot as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { s as
|
|
6
|
-
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
return
|
|
14
|
-
}
|
|
15
|
-
const U = (e) => String(e) === "[object Object]";
|
|
16
|
-
function F(e) {
|
|
17
|
-
if (!U(e))
|
|
18
|
-
return !1;
|
|
19
|
-
const r = e.constructor;
|
|
20
|
-
if (r === void 0)
|
|
21
|
-
return !0;
|
|
22
|
-
const t = r.prototype;
|
|
23
|
-
return !(!U(t) || !t.hasOwnProperty("isPrototypeOf"));
|
|
24
|
-
}
|
|
25
|
-
function x(...e) {
|
|
26
|
-
return e.reduce((r, t) => V(r, t));
|
|
27
|
-
}
|
|
28
|
-
function Q(...e) {
|
|
29
|
-
return e.reduce((r, t) => V(r, t));
|
|
30
|
-
}
|
|
31
|
-
function V(e, r) {
|
|
32
|
-
return F(e) && F(r) ? Object.entries(r).reduce(
|
|
33
|
-
(t, [n, o]) => (t[n] = V(t[n], o), t),
|
|
34
|
-
{ ...e }
|
|
35
|
-
) : F(e) ? e : r;
|
|
36
|
-
}
|
|
37
|
-
function b(e, r) {
|
|
38
|
-
if (e === r)
|
|
39
|
-
return !0;
|
|
40
|
-
if (e instanceof Date && r instanceof Date)
|
|
41
|
-
return e.getTime() === r.getTime();
|
|
42
|
-
if (Array.isArray(e) && Array.isArray(r))
|
|
43
|
-
return e.length !== r.length ? !1 : e.every((t, n) => b(t, r[n]));
|
|
44
|
-
if (F(e) && F(r)) {
|
|
45
|
-
const t = Object.entries(e);
|
|
46
|
-
return t.length !== Object.keys(r).length ? !1 : t.every(([n, o]) => b(o, r[n]));
|
|
47
|
-
}
|
|
48
|
-
return !1;
|
|
49
|
-
}
|
|
50
|
-
function ce(e, r = {}) {
|
|
51
|
-
const t = /* @__PURE__ */ new Map();
|
|
52
|
-
let n = Q(e, r ?? {});
|
|
53
|
-
const o = Q(e, r);
|
|
54
|
-
function c(a) {
|
|
55
|
-
n = a(n);
|
|
56
|
-
for (const d of t.values())
|
|
57
|
-
d(n);
|
|
58
|
-
}
|
|
59
|
-
function s(a) {
|
|
60
|
-
c((d) => ({ ...d, ...a }));
|
|
61
|
-
}
|
|
62
|
-
function i() {
|
|
63
|
-
return n;
|
|
64
|
-
}
|
|
65
|
-
function l() {
|
|
66
|
-
return structuredClone(o);
|
|
67
|
-
}
|
|
68
|
-
function u(a, d) {
|
|
69
|
-
let m;
|
|
70
|
-
t.set(d, (g) => {
|
|
71
|
-
const h = a(g);
|
|
72
|
-
b(h, m) || (m = h, d(h));
|
|
73
|
-
});
|
|
74
|
-
}
|
|
75
|
-
function f(a) {
|
|
76
|
-
t.delete(a);
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
updateState: s,
|
|
80
|
-
getState: i,
|
|
81
|
-
getInitialState: l,
|
|
82
|
-
onChange: u,
|
|
83
|
-
clearOnChange: f
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
const ue = {
|
|
87
|
-
loading: !0,
|
|
88
|
-
query: {},
|
|
89
|
-
response: {},
|
|
90
|
-
initialized: !1
|
|
91
|
-
};
|
|
92
|
-
function _(e = {}) {
|
|
93
|
-
return ce(ue, e);
|
|
94
|
-
}
|
|
95
|
-
const A = W(_());
|
|
96
|
-
function y(e = ae) {
|
|
97
|
-
const r = q(A), [t, n] = I(e(r.getState()));
|
|
98
|
-
return r.onChange(e, n), N(() => () => r.clearOnChange(n), [r]), t;
|
|
99
|
-
}
|
|
100
|
-
const ae = (e) => e;
|
|
101
|
-
function J(e, ...r) {
|
|
102
|
-
return r.reduce(
|
|
103
|
-
(t, n) => (t[n] = e[n], t),
|
|
104
|
-
{}
|
|
105
|
-
);
|
|
106
|
-
}
|
|
107
|
-
const T = W(null), Y = () => {
|
|
108
|
-
const e = q(T);
|
|
109
|
-
if (!e)
|
|
110
|
-
throw new Error("useConfig must be used within a ConfigProvider");
|
|
111
|
-
return e;
|
|
112
|
-
};
|
|
113
|
-
function le(e) {
|
|
114
|
-
return Array.from(new Set(e));
|
|
115
|
-
}
|
|
116
|
-
function fe(e, r) {
|
|
117
|
-
return {
|
|
118
|
-
...r,
|
|
119
|
-
products: {
|
|
120
|
-
facets: e === "autocomplete" ? void 0 : ["*"],
|
|
121
|
-
fields: de,
|
|
122
|
-
...r.products
|
|
123
|
-
},
|
|
124
|
-
...r.keywords ? {
|
|
125
|
-
keywords: {
|
|
126
|
-
...r.keywords,
|
|
127
|
-
fields: le([...ge, ...r.keywords.fields ?? []]),
|
|
128
|
-
highlight: r.keywords.highlight ?? {
|
|
129
|
-
preTag: "<strong>",
|
|
130
|
-
postTag: "</strong>"
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
} : {}
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
const de = [
|
|
137
|
-
"productId",
|
|
138
|
-
"url",
|
|
139
|
-
"name",
|
|
140
|
-
"imageUrl",
|
|
141
|
-
"imageHash",
|
|
142
|
-
"thumbUrl",
|
|
143
|
-
"description",
|
|
144
|
-
"brand",
|
|
145
|
-
"variantId",
|
|
146
|
-
"availability",
|
|
147
|
-
"price",
|
|
148
|
-
"priceText",
|
|
149
|
-
"categoryIds",
|
|
150
|
-
"categories",
|
|
151
|
-
"customFields.key",
|
|
152
|
-
"customFields.value",
|
|
153
|
-
"priceCurrencyCode",
|
|
154
|
-
"datePublished",
|
|
155
|
-
"listPrice",
|
|
156
|
-
"unitPricingBaseMeasure",
|
|
157
|
-
"unitPricingUnit",
|
|
158
|
-
"unitPricingMeasure",
|
|
159
|
-
"googleCategory",
|
|
160
|
-
"gtin",
|
|
161
|
-
"ageGroup",
|
|
162
|
-
"gender",
|
|
163
|
-
"condition",
|
|
164
|
-
"alternateImageUrls",
|
|
165
|
-
"ratingValue",
|
|
166
|
-
"reviewCount",
|
|
167
|
-
"inventoryLevel",
|
|
168
|
-
"skus.id",
|
|
169
|
-
"skus.name",
|
|
170
|
-
"skus.price",
|
|
171
|
-
"skus.listPrice",
|
|
172
|
-
"skus.priceText",
|
|
173
|
-
"skus.url",
|
|
174
|
-
"skus.imageUrl",
|
|
175
|
-
"skus.inventoryLevel",
|
|
176
|
-
"skus.customFields.key",
|
|
177
|
-
"skus.customFields.value",
|
|
178
|
-
"skus.availability",
|
|
179
|
-
"pid",
|
|
180
|
-
"onDiscount",
|
|
181
|
-
"extra.key",
|
|
182
|
-
"extra.value",
|
|
183
|
-
"saleable",
|
|
184
|
-
"available",
|
|
185
|
-
"tags1",
|
|
186
|
-
"tags2",
|
|
187
|
-
"tags3"
|
|
188
|
-
], ge = ["keyword", "_redirect"];
|
|
189
|
-
function pe(...e) {
|
|
190
|
-
if (!e.every((r) => r == null))
|
|
191
|
-
return e.filter((r) => Array.isArray(r)).reduce((r, t) => r.concat(t), []);
|
|
192
|
-
}
|
|
193
|
-
const X = "nosto.search.";
|
|
194
|
-
function me(e) {
|
|
195
|
-
var t;
|
|
196
|
-
const r = `${X}${e}`;
|
|
197
|
-
(t = window.performance) == null || t.mark(`${r}.start`);
|
|
198
|
-
}
|
|
199
|
-
function he(e) {
|
|
200
|
-
var t, n;
|
|
201
|
-
const r = `${X}${e}`;
|
|
202
|
-
(t = window.performance) == null || t.mark(`${r}.end`), (n = window.performance) == null || n.measure(r, `${r}.start`, `${r}.end`);
|
|
203
|
-
}
|
|
204
|
-
function O(e) {
|
|
205
|
-
return me(e), () => he(e);
|
|
206
|
-
}
|
|
207
|
-
function ye(e, r, t) {
|
|
208
|
-
const n = JSON.stringify(r);
|
|
209
|
-
try {
|
|
210
|
-
console.info("Setting storage", e, n), t.setItem(e, n);
|
|
211
|
-
} catch (o) {
|
|
212
|
-
console.warn(o);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
function Se(e, r) {
|
|
216
|
-
try {
|
|
217
|
-
const t = r.getItem(e);
|
|
218
|
-
if (t)
|
|
219
|
-
return JSON.parse(t);
|
|
220
|
-
} catch (t) {
|
|
221
|
-
console.warn(t);
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
function ve(e, r) {
|
|
225
|
-
ye(e, r, sessionStorage);
|
|
226
|
-
}
|
|
227
|
-
function we(e) {
|
|
228
|
-
return Se(e, sessionStorage);
|
|
229
|
-
}
|
|
230
|
-
const Z = "nosto:search:searchResult";
|
|
231
|
-
function Ce(e, r, t) {
|
|
232
|
-
if (!e)
|
|
233
|
-
return;
|
|
234
|
-
ve(Z, { query: r, result: t });
|
|
235
|
-
}
|
|
236
|
-
function ke(e, r) {
|
|
237
|
-
if (!e)
|
|
238
|
-
return null;
|
|
239
|
-
const t = we(Z);
|
|
240
|
-
if (!t || !Pe(t))
|
|
241
|
-
return null;
|
|
242
|
-
const n = K(t.query);
|
|
243
|
-
return b(K(r), n) ? t.result : null;
|
|
244
|
-
}
|
|
245
|
-
function K(e) {
|
|
246
|
-
return {
|
|
247
|
-
accountId: e.accountId,
|
|
248
|
-
customRules: e.customRules,
|
|
249
|
-
explain: e.explain,
|
|
250
|
-
keywords: e.keywords,
|
|
251
|
-
products: e.products,
|
|
252
|
-
query: e.query,
|
|
253
|
-
redirect: e.redirect,
|
|
254
|
-
rules: e.rules,
|
|
255
|
-
segments: e.segments,
|
|
256
|
-
sessionParams: e.sessionParams
|
|
257
|
-
};
|
|
258
|
-
}
|
|
259
|
-
function Pe(e) {
|
|
260
|
-
return typeof e == "object" && e !== null && "query" in e && "result" in e;
|
|
261
|
-
}
|
|
262
|
-
async function ee(e, r, t) {
|
|
263
|
-
var u, f, a;
|
|
264
|
-
const n = O("newSearch"), o = e.config.pageType, c = x(e.store.getInitialState().query, r), s = x(e.config.search, t, {
|
|
265
|
-
track: o,
|
|
266
|
-
redirect: o !== "autocomplete",
|
|
267
|
-
isKeyword: !!(t != null && t.isKeyword)
|
|
268
|
-
});
|
|
269
|
-
e.store.updateState({
|
|
270
|
-
query: c,
|
|
271
|
-
loading: !0,
|
|
272
|
-
initialized: !0
|
|
273
|
-
});
|
|
274
|
-
const i = o !== "autocomplete" && e.config.persistentSearchCache, l = e.config.queryModifications(
|
|
275
|
-
{
|
|
276
|
-
...c,
|
|
277
|
-
products: {
|
|
278
|
-
...c.products,
|
|
279
|
-
// Apply filter merging to avoid overwriting base filters
|
|
280
|
-
filter: pe((f = (u = e.store.getInitialState().query) == null ? void 0 : u.products) == null ? void 0 : f.filter, (a = r.products) == null ? void 0 : a.filter)
|
|
281
|
-
}
|
|
282
|
-
},
|
|
283
|
-
o
|
|
284
|
-
);
|
|
285
|
-
try {
|
|
286
|
-
let d;
|
|
287
|
-
const m = ke(i, l);
|
|
288
|
-
if (m)
|
|
289
|
-
d = m;
|
|
290
|
-
else {
|
|
291
|
-
const g = fe(o, l);
|
|
292
|
-
d = await se(g, s), Ce(i, l, d);
|
|
293
|
-
}
|
|
294
|
-
e.store.updateState({
|
|
295
|
-
response: d,
|
|
296
|
-
loading: !1
|
|
297
|
-
});
|
|
298
|
-
} catch (d) {
|
|
299
|
-
console.error("Search action failed", d);
|
|
300
|
-
}
|
|
301
|
-
n();
|
|
302
|
-
}
|
|
303
|
-
async function $(e, r, t) {
|
|
304
|
-
const n = O("updateSearch"), o = x(e.store.getState().query, { products: { from: 0 } }, r);
|
|
305
|
-
await ee(e, o, t), n();
|
|
306
|
-
}
|
|
307
|
-
async function Fe(e, r, t) {
|
|
308
|
-
var s;
|
|
309
|
-
const n = O("replaceFilter"), o = (s = e.store.getState().query.products) == null ? void 0 : s.filter, c = t !== void 0 ? [{ field: r, [typeof t == "object" ? "range" : "value"]: [t] }] : [];
|
|
310
|
-
await $(e, {
|
|
311
|
-
products: {
|
|
312
|
-
filter: [...(o == null ? void 0 : o.filter((i) => i.field !== r)) ?? [], ...c]
|
|
313
|
-
}
|
|
314
|
-
}), n();
|
|
315
|
-
}
|
|
316
|
-
async function be(e, r, t, n) {
|
|
317
|
-
var l, u;
|
|
318
|
-
const o = O("toggleProductFilter"), c = (l = e.store.getState().query.products) == null ? void 0 : l.filter, s = c == null ? void 0 : c.find((f) => f.value instanceof Array && f.field === r), i = s != null && s.value ? {
|
|
319
|
-
...s,
|
|
320
|
-
value: [...s.value.filter((f) => !b(f, t)), ...n ? [t] : []]
|
|
321
|
-
} : n ? {
|
|
322
|
-
field: r,
|
|
323
|
-
value: [t]
|
|
324
|
-
} : void 0;
|
|
325
|
-
await $(e, {
|
|
326
|
-
products: {
|
|
327
|
-
filter: [...(c == null ? void 0 : c.filter((f) => f !== s)) ?? [], ...(u = i == null ? void 0 : i.value) != null && u.length ? [i] : []]
|
|
328
|
-
}
|
|
329
|
-
}), o();
|
|
330
|
-
}
|
|
331
|
-
function P() {
|
|
332
|
-
const e = Y(), r = q(A), t = M(
|
|
333
|
-
() => ({
|
|
334
|
-
config: e,
|
|
335
|
-
store: r
|
|
336
|
-
}),
|
|
337
|
-
[e, r]
|
|
338
|
-
), n = v(
|
|
339
|
-
(i, l) => ee(t, i, l),
|
|
340
|
-
[t]
|
|
341
|
-
), o = v(
|
|
342
|
-
(i, l) => $(t, i, l),
|
|
343
|
-
[t]
|
|
344
|
-
), c = v(
|
|
345
|
-
(i, l, u) => be(t, i, l, u),
|
|
346
|
-
[t]
|
|
347
|
-
), s = v(
|
|
348
|
-
(i, l) => Fe(t, i, l),
|
|
349
|
-
[t]
|
|
350
|
-
);
|
|
351
|
-
return {
|
|
352
|
-
newSearch: n,
|
|
353
|
-
updateSearch: o,
|
|
354
|
-
toggleProductFilter: c,
|
|
355
|
-
replaceFilter: s
|
|
356
|
-
};
|
|
357
|
-
}
|
|
358
|
-
function Me({ from: e, size: r, pageSize: t }) {
|
|
359
|
-
return H() ? {
|
|
360
|
-
products: { from: e + t }
|
|
361
|
-
} : {
|
|
362
|
-
products: { size: r + t }
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
function te(e = 24) {
|
|
366
|
-
const { from: r, size: t } = y((c) => {
|
|
367
|
-
var s, i;
|
|
368
|
-
return {
|
|
369
|
-
from: ((s = c.query.products) == null ? void 0 : s.from) ?? 0,
|
|
370
|
-
size: ((i = c.query.products) == null ? void 0 : i.size) ?? 0
|
|
371
|
-
};
|
|
372
|
-
}), { updateSearch: n } = P();
|
|
373
|
-
return {
|
|
374
|
-
loadMore: v(async () => {
|
|
375
|
-
await n(Me({ from: r, size: t, pageSize: e }));
|
|
376
|
-
}, [r, t, e, n])
|
|
377
|
-
};
|
|
378
|
-
}
|
|
379
|
-
function Ae({ pageSize: e }) {
|
|
380
|
-
const { loadMore: r } = te(e);
|
|
381
|
-
return /* @__PURE__ */ w("button", { onClick: r, children: "More results" });
|
|
382
|
-
}
|
|
383
|
-
function re(e, r) {
|
|
384
|
-
var c, s, i;
|
|
385
|
-
const t = ((c = r.products) == null ? void 0 : c.total) ?? 0, n = ((s = e.products) == null ? void 0 : s.from) ?? 0, o = ((i = e.products) == null ? void 0 : i.size) ?? 0;
|
|
386
|
-
return t > 0 && t > n + o;
|
|
387
|
-
}
|
|
388
|
-
function Ie() {
|
|
389
|
-
return !!(window.IntersectionObserver && window.IntersectionObserverEntry && "intersectionRatio" in window.IntersectionObserverEntry.prototype);
|
|
390
|
-
}
|
|
391
|
-
function Re({ children: e, loadMoreComponent: r, pageSize: t }) {
|
|
392
|
-
const { loading: n, query: o, response: c } = y((i) => J(i, "loading", "query", "response")), s = !n && re(o, c);
|
|
393
|
-
return /* @__PURE__ */ w(G, { children: [
|
|
1
|
+
import { isBot as B } from "../utils/utils.es.js";
|
|
2
|
+
import { u as L, a as C, b as v, h as j, p as V, i as D, I as H, c as O, d as R, S as x, C as k, e as U, f as P } from "../InfiniteScrollWithObserver-kuSGeBWr.js";
|
|
3
|
+
import { k as ze, j as Ie } from "../InfiniteScrollWithObserver-kuSGeBWr.js";
|
|
4
|
+
import { Fragment as W, toChildArray as $ } from "preact";
|
|
5
|
+
import { s as q } from "../index.es-B8mbAxS4.js";
|
|
6
|
+
import { useEffect as E, useState as N, useMemo as w, useCallback as M } from "preact/hooks";
|
|
7
|
+
function K({ pageSize: e }) {
|
|
8
|
+
const { loadMore: n } = L(e);
|
|
9
|
+
return /* @__PURE__ */ C("button", { onClick: n, children: "More results" });
|
|
10
|
+
}
|
|
11
|
+
function Y({ children: e, loadMoreComponent: n, pageSize: t }) {
|
|
12
|
+
const { loading: r, query: o, response: a } = v((u) => V(u, "loading", "query", "response")), i = !r && j(o, a);
|
|
13
|
+
return /* @__PURE__ */ C(W, { children: [
|
|
394
14
|
e,
|
|
395
|
-
|
|
15
|
+
i && (n ? /* @__PURE__ */ C(n, { pageSize: t }) : /* @__PURE__ */ C(K, { pageSize: t }))
|
|
396
16
|
] });
|
|
397
17
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
return N(() => {
|
|
401
|
-
let s, i;
|
|
402
|
-
return re(n, o) && (s = t.current, i = new IntersectionObserver((l) => {
|
|
403
|
-
const u = l[0];
|
|
404
|
-
u != null && u.isIntersecting && c();
|
|
405
|
-
}), s && i.observe(s)), () => {
|
|
406
|
-
s && i.unobserve(s);
|
|
407
|
-
};
|
|
408
|
-
}, [o]), /* @__PURE__ */ w(G, { children: [
|
|
409
|
-
e,
|
|
410
|
-
/* @__PURE__ */ w("div", { ref: t, style: { height: "1px" } })
|
|
411
|
-
] });
|
|
412
|
-
}
|
|
413
|
-
const Ye = !H() && Ie() ? Ne : Re;
|
|
414
|
-
function _e(e) {
|
|
18
|
+
const ge = !B() && D() ? H : Y;
|
|
19
|
+
function _(e) {
|
|
415
20
|
return e.type === "input";
|
|
416
21
|
}
|
|
417
|
-
function
|
|
22
|
+
function G(e) {
|
|
418
23
|
return !!e && typeof e == "object" && "type" in e && "props" in e;
|
|
419
24
|
}
|
|
420
|
-
function
|
|
25
|
+
function z(e, n = { depth: 0 }) {
|
|
421
26
|
const { children: t } = e;
|
|
422
|
-
return
|
|
423
|
-
if (!
|
|
424
|
-
return
|
|
425
|
-
const o = e.updateElement(
|
|
27
|
+
return $(t).map((r) => {
|
|
28
|
+
if (!G(r))
|
|
29
|
+
return r;
|
|
30
|
+
const o = e.updateElement(r, n);
|
|
426
31
|
return o === null ? null : (o.props = {
|
|
427
32
|
...o.props,
|
|
428
|
-
children:
|
|
33
|
+
children: z({ ...e, children: o.props.children }, { depth: n.depth + 1 })
|
|
429
34
|
}, o);
|
|
430
35
|
});
|
|
431
36
|
}
|
|
432
|
-
function
|
|
433
|
-
return
|
|
37
|
+
function me({ children: e, onSearchInput: n }) {
|
|
38
|
+
return z({
|
|
434
39
|
children: e,
|
|
435
|
-
updateElement: (t) => (!
|
|
40
|
+
updateElement: (t) => (!_(t) || t.props.type !== "search" || (t.props = {
|
|
436
41
|
...t.props,
|
|
437
|
-
onInput: (
|
|
438
|
-
|
|
42
|
+
onInput: (r) => {
|
|
43
|
+
r.target instanceof HTMLInputElement && n(r.target);
|
|
439
44
|
}
|
|
440
45
|
}), t)
|
|
441
46
|
});
|
|
442
47
|
}
|
|
443
|
-
const
|
|
444
|
-
function
|
|
445
|
-
window.sessionStorage.setItem(
|
|
48
|
+
const J = "nosto:search:scrollPos";
|
|
49
|
+
function Q() {
|
|
50
|
+
window.sessionStorage.setItem(J, window.scrollY.toString());
|
|
446
51
|
}
|
|
447
|
-
function
|
|
448
|
-
const { pageType:
|
|
449
|
-
return
|
|
52
|
+
function he({ children: e, hit: n, onClick: t }) {
|
|
53
|
+
const { pageType: r } = O(), o = r === "autocomplete" ? void 0 : r;
|
|
54
|
+
return z({
|
|
450
55
|
children: e,
|
|
451
|
-
updateElement: (
|
|
452
|
-
...
|
|
453
|
-
onClick: (
|
|
454
|
-
|
|
56
|
+
updateElement: (a, i) => (i.depth > 0 || (a.props = {
|
|
57
|
+
...a.props,
|
|
58
|
+
onClick: (u) => {
|
|
59
|
+
n && o && q((f) => f.recordSearchClick(o, n)), Q(), typeof t == "function" && t(u);
|
|
455
60
|
}
|
|
456
|
-
}),
|
|
61
|
+
}), a)
|
|
457
62
|
});
|
|
458
63
|
}
|
|
459
|
-
function
|
|
460
|
-
|
|
64
|
+
function I() {
|
|
65
|
+
E(() => {
|
|
461
66
|
const e = window.setTimeout(() => {
|
|
462
67
|
console.error("Nosto client script has not loaded after 3 seconds.");
|
|
463
68
|
}, 3e3);
|
|
464
|
-
|
|
69
|
+
q(() => {
|
|
465
70
|
window.clearTimeout(e);
|
|
466
71
|
});
|
|
467
72
|
}, []);
|
|
468
73
|
}
|
|
469
|
-
const
|
|
74
|
+
const T = {
|
|
470
75
|
defaultCurrency: "EUR",
|
|
471
76
|
queryModifications: (e) => e
|
|
472
|
-
},
|
|
473
|
-
...
|
|
77
|
+
}, X = {
|
|
78
|
+
...T
|
|
474
79
|
};
|
|
475
|
-
function
|
|
80
|
+
function Z(e) {
|
|
476
81
|
return {
|
|
477
82
|
pageType: "autocomplete",
|
|
478
|
-
...
|
|
83
|
+
...X,
|
|
479
84
|
...e
|
|
480
85
|
};
|
|
481
86
|
}
|
|
482
|
-
function
|
|
483
|
-
const
|
|
484
|
-
return
|
|
87
|
+
function Se({ config: e, store: n, children: t }) {
|
|
88
|
+
const r = n ?? R();
|
|
89
|
+
return I(), /* @__PURE__ */ C(k, { value: Z(e), children: /* @__PURE__ */ C(x, { value: r, children: t }) });
|
|
485
90
|
}
|
|
486
|
-
const
|
|
487
|
-
...
|
|
91
|
+
const ee = {
|
|
92
|
+
...T,
|
|
488
93
|
persistentSearchCache: !1,
|
|
489
94
|
preservePageScroll: !1
|
|
490
95
|
};
|
|
491
|
-
function
|
|
96
|
+
function te(e) {
|
|
492
97
|
return {
|
|
493
98
|
pageType: "category",
|
|
494
|
-
...
|
|
99
|
+
...ee,
|
|
495
100
|
...e
|
|
496
101
|
};
|
|
497
102
|
}
|
|
498
|
-
function
|
|
499
|
-
const
|
|
500
|
-
return
|
|
103
|
+
function ve({ config: e, store: n, children: t }) {
|
|
104
|
+
const r = n ?? R();
|
|
105
|
+
return I(), /* @__PURE__ */ C(k, { value: te(e), children: /* @__PURE__ */ C(x, { value: r, children: t }) });
|
|
501
106
|
}
|
|
502
|
-
const
|
|
503
|
-
...
|
|
107
|
+
const ne = {
|
|
108
|
+
...T,
|
|
504
109
|
persistentSearchCache: !1,
|
|
505
110
|
preservePageScroll: !1
|
|
506
111
|
};
|
|
507
|
-
function
|
|
112
|
+
function re(e = {}) {
|
|
508
113
|
return {
|
|
509
114
|
pageType: "serp",
|
|
510
|
-
|
|
115
|
+
...ne,
|
|
511
116
|
...e
|
|
512
117
|
};
|
|
513
118
|
}
|
|
514
|
-
function
|
|
515
|
-
const
|
|
516
|
-
return
|
|
119
|
+
function ye({ config: e, store: n, children: t }) {
|
|
120
|
+
const r = n ?? R();
|
|
121
|
+
return I(), /* @__PURE__ */ C(k, { value: re(e), children: /* @__PURE__ */ C(x, { value: r, children: t }) });
|
|
517
122
|
}
|
|
518
|
-
function
|
|
519
|
-
const
|
|
520
|
-
return e && Array.isArray(e) || e &&
|
|
123
|
+
function Ce(e) {
|
|
124
|
+
const n = v((t) => t.response);
|
|
125
|
+
return e && Array.isArray(e) || e && U(e) ? e : n;
|
|
521
126
|
}
|
|
522
|
-
function
|
|
523
|
-
var
|
|
524
|
-
const
|
|
127
|
+
function Fe(e) {
|
|
128
|
+
var i;
|
|
129
|
+
const n = ((i = e.data) == null ? void 0 : i.filter((u) => u.selected).length) ?? 0, [t, r] = N(n > 0), { toggleProductFilter: o } = P();
|
|
525
130
|
return {
|
|
526
131
|
/** Active value */
|
|
527
132
|
active: t,
|
|
528
133
|
/** Selected filters count */
|
|
529
|
-
selectedFiltersCount:
|
|
134
|
+
selectedFiltersCount: n,
|
|
530
135
|
/** Toggle active function */
|
|
531
136
|
toggleActive: () => {
|
|
532
|
-
|
|
137
|
+
r(!t);
|
|
533
138
|
},
|
|
534
139
|
/** Toggle product filter function */
|
|
535
140
|
toggleProductFilter: o
|
|
536
141
|
};
|
|
537
142
|
}
|
|
538
|
-
function
|
|
539
|
-
const { loading: e, facets:
|
|
540
|
-
var
|
|
143
|
+
function Me() {
|
|
144
|
+
const { loading: e, facets: n } = v((t) => {
|
|
145
|
+
var r, o;
|
|
541
146
|
return {
|
|
542
147
|
loading: t.loading,
|
|
543
|
-
facets: ((o = (
|
|
148
|
+
facets: ((o = (r = t.response) == null ? void 0 : r.products) == null ? void 0 : o.facets) ?? []
|
|
544
149
|
};
|
|
545
150
|
});
|
|
546
151
|
return {
|
|
547
152
|
/** Loading state */
|
|
548
153
|
loading: e,
|
|
549
154
|
/** Array of facets*/
|
|
550
|
-
facets:
|
|
155
|
+
facets: n
|
|
551
156
|
};
|
|
552
157
|
}
|
|
553
|
-
function
|
|
554
|
-
const t =
|
|
555
|
-
return !isNaN(t) && t > 0 ? new Array(
|
|
158
|
+
function oe(e, n) {
|
|
159
|
+
const t = n - e;
|
|
160
|
+
return !isNaN(t) && t > 0 ? new Array(n - e).fill(void 0).map((r, o) => o + e) : [];
|
|
556
161
|
}
|
|
557
|
-
function
|
|
558
|
-
const { query:
|
|
559
|
-
query:
|
|
560
|
-
products:
|
|
162
|
+
function Pe(e) {
|
|
163
|
+
const { query: n, products: t } = v((r) => ({
|
|
164
|
+
query: r.query,
|
|
165
|
+
products: r.response.products
|
|
561
166
|
}));
|
|
562
|
-
return
|
|
563
|
-
var
|
|
167
|
+
return w(() => {
|
|
168
|
+
var F;
|
|
564
169
|
if (!t)
|
|
565
170
|
return {
|
|
566
171
|
totalPages: 0,
|
|
@@ -568,138 +173,138 @@ function it(e) {
|
|
|
568
173
|
resultsTo: 0,
|
|
569
174
|
pages: []
|
|
570
175
|
};
|
|
571
|
-
const
|
|
572
|
-
from:
|
|
573
|
-
page:
|
|
176
|
+
const r = ((F = n.products) == null ? void 0 : F.from) ?? 0, o = (e == null ? void 0 : e.width) ?? 1 / 0, a = Math.max(Math.floor(o - 1) / 2, 1), i = t.size > 0 ? Math.floor(r / t.size) + 1 : 1, u = t.size > 0 ? Math.ceil(t.total / t.size) : 0, f = (S) => S >= i - a && S <= i + a, s = r + 1, l = Math.min(r + t.total, t.total), c = {
|
|
177
|
+
from: r,
|
|
178
|
+
page: i,
|
|
574
179
|
current: !0
|
|
575
|
-
},
|
|
576
|
-
from: (
|
|
577
|
-
page:
|
|
578
|
-
current:
|
|
579
|
-
}), m =
|
|
180
|
+
}, g = (S) => ({
|
|
181
|
+
from: (S - 1) * t.size,
|
|
182
|
+
page: S,
|
|
183
|
+
current: S === i
|
|
184
|
+
}), m = i > 1 ? g(i - 1) : void 0, d = i < u ? g(i + 1) : void 0, y = a === 1 / 0 || i - a - 1 > 1 ? g(1) : void 0, p = a === 1 / 0 || i + a + 1 < u ? g(u) : void 0, h = oe(1, u + 1).filter(f).map(g);
|
|
580
185
|
return {
|
|
581
|
-
totalPages:
|
|
582
|
-
resultsFrom:
|
|
583
|
-
resultsTo:
|
|
584
|
-
current:
|
|
186
|
+
totalPages: u,
|
|
187
|
+
resultsFrom: s,
|
|
188
|
+
resultsTo: l,
|
|
189
|
+
current: c,
|
|
585
190
|
prev: m,
|
|
586
|
-
next:
|
|
587
|
-
first:
|
|
191
|
+
next: d,
|
|
192
|
+
first: y,
|
|
588
193
|
last: p,
|
|
589
|
-
pages:
|
|
194
|
+
pages: h
|
|
590
195
|
};
|
|
591
|
-
}, [
|
|
592
|
-
}
|
|
593
|
-
function
|
|
594
|
-
const [e,
|
|
595
|
-
return
|
|
596
|
-
|
|
597
|
-
const { products:
|
|
598
|
-
|
|
196
|
+
}, [n, t, e == null ? void 0 : e.width]);
|
|
197
|
+
}
|
|
198
|
+
function be() {
|
|
199
|
+
const [e, n] = N([]), [t, r] = N([]);
|
|
200
|
+
return E(() => {
|
|
201
|
+
q(async (o) => {
|
|
202
|
+
const { products: a, segments: i } = await o.getSearchSessionParams();
|
|
203
|
+
n(i ?? []), r((a == null ? void 0 : a.personalizationBoost) ?? []);
|
|
599
204
|
});
|
|
600
205
|
}, []), {
|
|
601
206
|
segments: e,
|
|
602
207
|
boost: t
|
|
603
208
|
};
|
|
604
209
|
}
|
|
605
|
-
function
|
|
606
|
-
const { facets: e } =
|
|
607
|
-
var
|
|
210
|
+
function se() {
|
|
211
|
+
const { facets: e } = v((s) => {
|
|
212
|
+
var l;
|
|
608
213
|
return {
|
|
609
|
-
facets: ((
|
|
214
|
+
facets: ((l = s.response.products) == null ? void 0 : l.facets) ?? []
|
|
610
215
|
};
|
|
611
|
-
}), { replaceFilter:
|
|
612
|
-
(
|
|
613
|
-
const
|
|
614
|
-
if (
|
|
615
|
-
return
|
|
216
|
+
}), { replaceFilter: n, toggleProductFilter: t } = P(), r = M(
|
|
217
|
+
(s) => {
|
|
218
|
+
const l = e == null ? void 0 : e.find((c) => c.type === "stats" && c.field === s);
|
|
219
|
+
if (l && "min" in l && "max" in l)
|
|
220
|
+
return l;
|
|
616
221
|
},
|
|
617
222
|
[e]
|
|
618
|
-
), o =
|
|
619
|
-
(
|
|
620
|
-
var
|
|
621
|
-
return ((
|
|
223
|
+
), o = M(
|
|
224
|
+
(s) => {
|
|
225
|
+
var l;
|
|
226
|
+
return ((l = e == null ? void 0 : e.find((c) => c.field === s)) == null ? void 0 : l.name) ?? s;
|
|
622
227
|
},
|
|
623
228
|
[e]
|
|
624
|
-
),
|
|
625
|
-
var
|
|
229
|
+
), a = M((s) => "field" in s && (s.value instanceof Array || s.range instanceof Array), []), i = M((s) => {
|
|
230
|
+
var l;
|
|
626
231
|
return {
|
|
627
|
-
...
|
|
628
|
-
range: (
|
|
629
|
-
gt:
|
|
630
|
-
gte:
|
|
631
|
-
lt:
|
|
632
|
-
lte:
|
|
232
|
+
...s,
|
|
233
|
+
range: (l = s.range) == null ? void 0 : l.map((c) => ({
|
|
234
|
+
gt: c.gt ? Number(c.gt) : c.gt,
|
|
235
|
+
gte: c.gte ? Number(c.gte) : c.gte,
|
|
236
|
+
lt: c.lt ? Number(c.lt) : c.lt,
|
|
237
|
+
lte: c.lte ? Number(c.lte) : c.lte
|
|
633
238
|
}))
|
|
634
239
|
};
|
|
635
|
-
}, []),
|
|
636
|
-
(
|
|
637
|
-
value:
|
|
638
|
-
field:
|
|
639
|
-
name: o(
|
|
640
|
-
filter: s
|
|
240
|
+
}, []), u = M(
|
|
241
|
+
(s) => (s.value ?? []).map((c) => ({
|
|
242
|
+
value: c,
|
|
243
|
+
field: s.field,
|
|
244
|
+
name: o(s.field),
|
|
245
|
+
filter: i(s),
|
|
641
246
|
remove: () => {
|
|
642
|
-
t(
|
|
247
|
+
t(s.field, c, !1);
|
|
643
248
|
}
|
|
644
249
|
})),
|
|
645
|
-
[
|
|
646
|
-
),
|
|
647
|
-
(
|
|
648
|
-
var
|
|
649
|
-
const
|
|
650
|
-
if (
|
|
250
|
+
[i, o, t]
|
|
251
|
+
), f = M(
|
|
252
|
+
(s) => (s.range ?? []).map((c) => {
|
|
253
|
+
var d, y;
|
|
254
|
+
const g = c.gte ?? c.gt ?? ((d = r(s.field)) == null ? void 0 : d.min), m = c.lte ?? c.lt ?? ((y = r(s.field)) == null ? void 0 : y.max);
|
|
255
|
+
if (g !== void 0 && m !== void 0)
|
|
651
256
|
return {
|
|
652
|
-
value: `${
|
|
653
|
-
field:
|
|
654
|
-
name: o(
|
|
655
|
-
filter: s
|
|
257
|
+
value: `${g} - ${m}`,
|
|
258
|
+
field: s.field,
|
|
259
|
+
name: o(s.field),
|
|
260
|
+
filter: i(s),
|
|
656
261
|
remove: () => {
|
|
657
|
-
|
|
262
|
+
n(s.field, void 0);
|
|
658
263
|
}
|
|
659
264
|
};
|
|
660
265
|
}).filter(Boolean),
|
|
661
|
-
[
|
|
266
|
+
[i, r, o, n]
|
|
662
267
|
);
|
|
663
268
|
return {
|
|
664
|
-
selectFilters:
|
|
665
|
-
toValueFilter:
|
|
666
|
-
toRangeFilter:
|
|
269
|
+
selectFilters: a,
|
|
270
|
+
toValueFilter: u,
|
|
271
|
+
toRangeFilter: f
|
|
667
272
|
};
|
|
668
273
|
}
|
|
669
|
-
function
|
|
670
|
-
const { filter: e } =
|
|
671
|
-
var
|
|
274
|
+
function ie() {
|
|
275
|
+
const { filter: e } = v((u) => {
|
|
276
|
+
var f;
|
|
672
277
|
return {
|
|
673
|
-
filter: ((
|
|
278
|
+
filter: ((f = u.query.products) == null ? void 0 : f.filter) ?? []
|
|
674
279
|
};
|
|
675
|
-
}), { updateSearch:
|
|
676
|
-
|
|
280
|
+
}), { updateSearch: n } = P(), { selectFilters: t, toValueFilter: r, toRangeFilter: o } = se(), a = w(() => e ? e.filter(t).flatMap((u) => "value" in u ? r(u) : "range" in u ? o(u) : []).filter(Boolean) : [], [e, t, o, r]), i = M(() => {
|
|
281
|
+
n({
|
|
677
282
|
products: {
|
|
678
283
|
filter: []
|
|
679
284
|
}
|
|
680
285
|
});
|
|
681
|
-
}, [
|
|
286
|
+
}, [n]);
|
|
682
287
|
return {
|
|
683
288
|
/** Selected filters array. */
|
|
684
|
-
filters:
|
|
289
|
+
filters: a,
|
|
685
290
|
/** Should remove all selected filters. */
|
|
686
|
-
removeAll:
|
|
291
|
+
removeAll: i
|
|
687
292
|
};
|
|
688
293
|
}
|
|
689
|
-
function
|
|
294
|
+
function b(e) {
|
|
690
295
|
if (typeof e == "number")
|
|
691
296
|
return e;
|
|
692
297
|
if (typeof e != "string")
|
|
693
298
|
return;
|
|
694
|
-
const
|
|
695
|
-
return isNaN(
|
|
696
|
-
}
|
|
697
|
-
function
|
|
698
|
-
var
|
|
699
|
-
const { replaceFilter:
|
|
700
|
-
query:
|
|
701
|
-
products:
|
|
702
|
-
})), o = (
|
|
299
|
+
const n = Number(e);
|
|
300
|
+
return isNaN(n) ? void 0 : n;
|
|
301
|
+
}
|
|
302
|
+
function ce(e) {
|
|
303
|
+
var c, g, m;
|
|
304
|
+
const { replaceFilter: n } = P(), { query: t, products: r } = v((d) => ({
|
|
305
|
+
query: d.query,
|
|
306
|
+
products: d.response.products
|
|
307
|
+
})), o = (c = r == null ? void 0 : r.facets) == null ? void 0 : c.find((d) => d.id === e);
|
|
703
308
|
if (!o)
|
|
704
309
|
return {
|
|
705
310
|
min: 0,
|
|
@@ -708,173 +313,172 @@ function Ue(e) {
|
|
|
708
313
|
updateRange: () => {
|
|
709
314
|
}
|
|
710
315
|
};
|
|
711
|
-
const
|
|
712
|
-
const p =
|
|
713
|
-
(
|
|
714
|
-
lte:
|
|
715
|
-
}) : (
|
|
316
|
+
const a = (m = (g = t.products) == null ? void 0 : g.filter) == null ? void 0 : m.find((d) => d.field === o.field), i = a != null && a.range ? a.range[0] : void 0, u = typeof i == "object" && ("gte" in i || "lte" in i) ? [b(i.gte), b(i.lte)] : [void 0, void 0], f = "min" in o ? Math.floor(o.min) : 0, s = "max" in o ? Math.ceil(o.max) : 0, l = ([d, y]) => {
|
|
317
|
+
const p = d !== void 0 ? Math.floor(d) : void 0, h = y !== void 0 ? Math.ceil(y) : void 0, F = p !== void 0, S = h !== void 0;
|
|
318
|
+
(f === p || !F) && (s === h || !S) ? n(o.field, void 0) : (f === p || !F) && S ? n(o.field, {
|
|
319
|
+
lte: h.toString()
|
|
320
|
+
}) : (s === h || !S) && F ? n(o.field, {
|
|
716
321
|
gte: p.toString()
|
|
717
|
-
}) :
|
|
322
|
+
}) : F && S && n(o.field, {
|
|
718
323
|
gte: p.toString(),
|
|
719
|
-
lte:
|
|
324
|
+
lte: h.toString()
|
|
720
325
|
});
|
|
721
326
|
};
|
|
722
327
|
return {
|
|
723
328
|
/** Min value */
|
|
724
|
-
min:
|
|
329
|
+
min: f,
|
|
725
330
|
/** Max value */
|
|
726
|
-
max:
|
|
331
|
+
max: s,
|
|
727
332
|
/** Range value */
|
|
728
|
-
range: [
|
|
333
|
+
range: [u[0] ?? f, u[1] ?? s],
|
|
729
334
|
/** Update range function */
|
|
730
|
-
updateRange:
|
|
335
|
+
updateRange: l
|
|
731
336
|
};
|
|
732
337
|
}
|
|
733
|
-
function
|
|
734
|
-
const { min: t, max:
|
|
735
|
-
var
|
|
736
|
-
const
|
|
737
|
-
var
|
|
738
|
-
return (
|
|
338
|
+
function we(e, n) {
|
|
339
|
+
const { min: t, max: r, range: o, updateRange: a } = ce(e), { filters: i } = ie(), u = w(() => {
|
|
340
|
+
var y;
|
|
341
|
+
const c = i.find((p) => {
|
|
342
|
+
var h;
|
|
343
|
+
return (h = p == null ? void 0 : p.filter) == null ? void 0 : h.range;
|
|
739
344
|
});
|
|
740
|
-
let
|
|
741
|
-
if (
|
|
742
|
-
const p = (
|
|
743
|
-
|
|
345
|
+
let g = null;
|
|
346
|
+
if (c) {
|
|
347
|
+
const p = (y = c.filter.range) == null ? void 0 : y[0];
|
|
348
|
+
g = [b(p == null ? void 0 : p.gte), b(p == null ? void 0 : p.lte)];
|
|
744
349
|
}
|
|
745
350
|
const m = [];
|
|
746
|
-
let
|
|
747
|
-
for (;
|
|
748
|
-
const p =
|
|
351
|
+
let d = Math.floor(t / n) * n;
|
|
352
|
+
for (; d < r; ) {
|
|
353
|
+
const p = d + n, h = g && g[0] === d && g[1] === p;
|
|
749
354
|
m.push({
|
|
750
|
-
min:
|
|
355
|
+
min: d,
|
|
751
356
|
max: p,
|
|
752
|
-
selected:
|
|
753
|
-
}),
|
|
357
|
+
selected: h
|
|
358
|
+
}), d = p;
|
|
754
359
|
}
|
|
755
360
|
return m;
|
|
756
|
-
}, [
|
|
757
|
-
|
|
758
|
-
},
|
|
759
|
-
|
|
760
|
-
},
|
|
361
|
+
}, [i, t, r, n]), f = (c) => {
|
|
362
|
+
a([c, o[1]]);
|
|
363
|
+
}, s = (c) => {
|
|
364
|
+
a([o[0], c]);
|
|
365
|
+
}, l = t !== o[0] || r !== o[1];
|
|
761
366
|
return {
|
|
762
367
|
/** Minimum value */
|
|
763
368
|
min: t,
|
|
764
369
|
/** Maximum value */
|
|
765
|
-
max:
|
|
370
|
+
max: r,
|
|
766
371
|
/** Range value */
|
|
767
372
|
range: o,
|
|
768
373
|
/** Update range function */
|
|
769
|
-
updateRange:
|
|
374
|
+
updateRange: a,
|
|
770
375
|
/** Ranges */
|
|
771
|
-
ranges:
|
|
376
|
+
ranges: u,
|
|
772
377
|
/** Handle min change */
|
|
773
|
-
handleMinChange:
|
|
378
|
+
handleMinChange: f,
|
|
774
379
|
/** Handle max change */
|
|
775
|
-
handleMaxChange:
|
|
380
|
+
handleMaxChange: s,
|
|
776
381
|
/** Is selected */
|
|
777
|
-
isSelected:
|
|
382
|
+
isSelected: l
|
|
778
383
|
};
|
|
779
384
|
}
|
|
780
|
-
function
|
|
781
|
-
const { products: e, keywords:
|
|
385
|
+
function Ae() {
|
|
386
|
+
const { products: e, keywords: n } = v((t) => t.response);
|
|
782
387
|
return {
|
|
783
388
|
/** Array of products */
|
|
784
389
|
products: e ?? { hits: [], total: 0 },
|
|
785
390
|
/** Array of keywords */
|
|
786
|
-
keywords:
|
|
391
|
+
keywords: n ?? { hits: [], total: 0 }
|
|
787
392
|
};
|
|
788
393
|
}
|
|
789
|
-
function
|
|
790
|
-
const e =
|
|
791
|
-
var
|
|
792
|
-
return (
|
|
394
|
+
function Ne() {
|
|
395
|
+
const e = v((t) => {
|
|
396
|
+
var r;
|
|
397
|
+
return (r = t.query.products) == null ? void 0 : r.filter;
|
|
793
398
|
});
|
|
794
|
-
return
|
|
399
|
+
return w(() => e ? e.reduce((t, r) => t + (Array.isArray(r.value) ? r.value.length : 1), 0) : 0, [e]);
|
|
795
400
|
}
|
|
796
|
-
function
|
|
401
|
+
function A(e) {
|
|
797
402
|
return e && !Number.isNaN(e) ? e : 0;
|
|
798
403
|
}
|
|
799
|
-
function
|
|
800
|
-
const { from: t, size:
|
|
801
|
-
var
|
|
404
|
+
function Re(e, n) {
|
|
405
|
+
const { from: t, size: r, total: o } = v((s) => {
|
|
406
|
+
var l, c, g, m, d;
|
|
802
407
|
return {
|
|
803
|
-
from:
|
|
804
|
-
size:
|
|
805
|
-
total:
|
|
408
|
+
from: A(((l = s.query.products) == null ? void 0 : l.from) ?? 0),
|
|
409
|
+
size: A(((g = (c = s.response) == null ? void 0 : c.products) == null ? void 0 : g.size) ?? 0),
|
|
410
|
+
total: A(((d = (m = s.response) == null ? void 0 : m.products) == null ? void 0 : d.total) ?? 0)
|
|
806
411
|
};
|
|
807
|
-
}), { updateSearch:
|
|
412
|
+
}), { updateSearch: a } = P(), i = t + r, u = [...e].reverse().filter((s) => s + n < o);
|
|
808
413
|
return {
|
|
809
414
|
/** from value */
|
|
810
415
|
from: t,
|
|
811
416
|
/** to value */
|
|
812
|
-
to:
|
|
417
|
+
to: i,
|
|
813
418
|
/** total value */
|
|
814
419
|
total: o,
|
|
815
420
|
/** size value */
|
|
816
|
-
size:
|
|
421
|
+
size: r,
|
|
817
422
|
/** Array of size options */
|
|
818
|
-
sizeOptions:
|
|
423
|
+
sizeOptions: u,
|
|
819
424
|
/** Should be called when size is changed */
|
|
820
|
-
handleSizeChange: (
|
|
821
|
-
|
|
425
|
+
handleSizeChange: (s) => {
|
|
426
|
+
a({
|
|
822
427
|
products: {
|
|
823
|
-
size:
|
|
428
|
+
size: s
|
|
824
429
|
}
|
|
825
430
|
});
|
|
826
431
|
}
|
|
827
432
|
};
|
|
828
433
|
}
|
|
829
|
-
function
|
|
830
|
-
return e.length !==
|
|
434
|
+
function ae(e, n) {
|
|
435
|
+
return e.length !== n.length ? !1 : e.every((t) => n.find((r) => t.field === r.field && t.order === r.order));
|
|
831
436
|
}
|
|
832
|
-
function
|
|
833
|
-
var
|
|
834
|
-
const
|
|
437
|
+
function xe(e) {
|
|
438
|
+
var a, i;
|
|
439
|
+
const n = v((u) => u.query), { updateSearch: t } = P();
|
|
835
440
|
return {
|
|
836
441
|
/** Active sort */
|
|
837
|
-
activeSort: ((
|
|
838
|
-
var
|
|
839
|
-
return
|
|
840
|
-
})) == null ? void 0 :
|
|
442
|
+
activeSort: ((a = e.find((u) => {
|
|
443
|
+
var f;
|
|
444
|
+
return ae(u.value.sort, ((f = n.products) == null ? void 0 : f.sort) || []);
|
|
445
|
+
})) == null ? void 0 : a.id) ?? ((i = e[0]) == null ? void 0 : i.id),
|
|
841
446
|
/** Set sort function */
|
|
842
|
-
setSort: (
|
|
843
|
-
const
|
|
844
|
-
|
|
447
|
+
setSort: (u) => {
|
|
448
|
+
const f = e.find((s) => s.id === u);
|
|
449
|
+
f && t({
|
|
845
450
|
products: {
|
|
846
|
-
sort:
|
|
451
|
+
sort: f.value.sort
|
|
847
452
|
}
|
|
848
453
|
});
|
|
849
454
|
}
|
|
850
455
|
};
|
|
851
456
|
}
|
|
852
457
|
export {
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
Me as getNextPageQuery,
|
|
458
|
+
Se as AutocompletePageProvider,
|
|
459
|
+
ve as CategoryPageProvider,
|
|
460
|
+
ge as InfiniteScroll,
|
|
461
|
+
Y as InfiniteScrollWithLink,
|
|
462
|
+
me as SearchInput,
|
|
463
|
+
ye as SearchPageProvider,
|
|
464
|
+
he as SerpElement,
|
|
465
|
+
x as StoreContext,
|
|
466
|
+
ze as createExtendableStore,
|
|
467
|
+
R as createStore,
|
|
468
|
+
Ie as defaultState,
|
|
865
469
|
P as useActions,
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
470
|
+
Ce as useDecoratedSearchResults,
|
|
471
|
+
Fe as useFacet,
|
|
472
|
+
Me as useFacets,
|
|
473
|
+
L as useLoadMore,
|
|
474
|
+
v as useNostoAppState,
|
|
475
|
+
Pe as usePagination,
|
|
476
|
+
be as usePersonalization,
|
|
477
|
+
ie as useProductFilters,
|
|
478
|
+
ce as useRange,
|
|
479
|
+
we as useRangeSelector,
|
|
480
|
+
Ae as useResponse,
|
|
481
|
+
Ne as useSelectedFiltersCount,
|
|
482
|
+
Re as useSizeOptions,
|
|
483
|
+
xe as useSort
|
|
880
484
|
};
|