@nosto/search-js 1.5.1 → 1.7.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/core/core.cjs.js +1 -1
- package/dist/core/core.d.ts +1 -0
- package/dist/core/core.es.js +6 -40
- package/dist/core/src/addToCart.d.ts +12 -0
- package/dist/currencies/currencies.cjs.js +1 -1
- package/dist/currencies/currencies.es.js +1 -1
- package/dist/index.es-B8mbAxS4.js +27 -0
- package/dist/index.es-DlUp67LT.cjs +1 -0
- package/dist/preact/preact.cjs.js +1 -1
- package/dist/preact/preact.d.ts +3 -0
- package/dist/preact/preact.es.js +557 -433
- package/dist/preact/src/components/InfiniteScroll/InfiniteScroll.d.ts +51 -0
- package/dist/preact/src/components/InfiniteScroll/InfiniteScrollWithLink.d.ts +6 -0
- package/dist/preact/src/components/InfiniteScroll/InfiniteScrollWithObserver.d.ts +7 -0
- package/dist/preact/src/components/InfiniteScroll/LoadMoreLink.d.ts +7 -0
- package/dist/preact/src/components/InfiniteScroll/utils.d.ts +9 -0
- package/dist/preact/src/hooks/useLoadMore/getNextPageQuery.d.ts +18 -0
- package/dist/preact/src/hooks/useLoadMore/useLoadMore.d.ts +24 -0
- package/dist/preact/src/hooks/usePagination.d.ts +43 -0
- package/dist/search-B0-bVNMy.js +43 -0
- package/dist/search-BVJZK90N.cjs +1 -0
- package/dist/thumbnails/thumbnails.cjs.js +1 -1
- package/dist/thumbnails/thumbnails.es.js +1 -1
- package/dist/utils/src/isBot.d.ts +4 -0
- package/dist/utils/src/pick.d.ts +6 -0
- package/dist/utils/src/range.d.ts +11 -0
- package/package.json +11 -10
- package/dist/index.es-Bcd5IQh9.js +0 -20
- package/dist/index.es-D_7T9vdv.cjs +0 -1
package/dist/core/core.cjs.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("../index.es-DlUp67LT.cjs"),o=require("../search-BVJZK90N.cjs");async function d(r,a,t=1){await e.L(a,void 0,t),await e.s(async c=>await c.recordSearchAddToCart(r,a))}exports.search=o.search;exports.addToCart=d;
|
package/dist/core/core.d.ts
CHANGED
package/dist/core/core.es.js
CHANGED
|
@@ -1,43 +1,9 @@
|
|
|
1
|
-
import { s as
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const e = (i) => r.reduce((u, n) => n(u), i);
|
|
6
|
-
return {
|
|
7
|
-
...t,
|
|
8
|
-
products: {
|
|
9
|
-
...t.products,
|
|
10
|
-
hits: t.products.hits.map(e)
|
|
11
|
-
}
|
|
12
|
-
};
|
|
13
|
-
}
|
|
14
|
-
function o(t) {
|
|
15
|
-
return new Promise((r) => setTimeout(r, t));
|
|
16
|
-
}
|
|
17
|
-
async function f(t, r, e) {
|
|
18
|
-
const { maxRetries: i = 0, retryInterval: u = 1e3 } = e;
|
|
19
|
-
let n = 0;
|
|
20
|
-
for (; ; )
|
|
21
|
-
try {
|
|
22
|
-
return await t.search(r, e);
|
|
23
|
-
} catch (c) {
|
|
24
|
-
if (!h(c))
|
|
25
|
-
throw console.info("Skipping retry logic for", c), c;
|
|
26
|
-
if (n >= i)
|
|
27
|
-
throw c;
|
|
28
|
-
n++, await o(u);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
function h(t) {
|
|
32
|
-
return !t || typeof t != "object" ? !1 : !("status" in t) || l(t.status);
|
|
33
|
-
}
|
|
34
|
-
function l(t) {
|
|
35
|
-
return typeof t == "number" && (t < 400 || t >= 500);
|
|
36
|
-
}
|
|
37
|
-
async function p(t, r = {}) {
|
|
38
|
-
const { hitDecorators: e, ...i } = r, u = await new Promise(a), n = await f(u, t, i);
|
|
39
|
-
return s(n, e);
|
|
1
|
+
import { L as c, s as d } from "../index.es-B8mbAxS4.js";
|
|
2
|
+
import { s as f } from "../search-B0-bVNMy.js";
|
|
3
|
+
async function e(r, a, o = 1) {
|
|
4
|
+
await c(a, void 0, o), await d(async (t) => await t.recordSearchAddToCart(r, a));
|
|
40
5
|
}
|
|
41
6
|
export {
|
|
42
|
-
|
|
7
|
+
e as addToCart,
|
|
8
|
+
f as search
|
|
43
9
|
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { SearchHit, SearchTrackOptions } from '@nosto/nosto-js/client';
|
|
2
|
+
export type SearchHitWithSku = SearchHit & {
|
|
3
|
+
skuId: string;
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Adds a search hit to the cart.
|
|
7
|
+
*
|
|
8
|
+
* @param type - The type of search that the hit belongs to.
|
|
9
|
+
* @param hit - The search hit to add to the cart.
|
|
10
|
+
* @param quantity - The quantity of the hit to add to the cart.
|
|
11
|
+
*/
|
|
12
|
+
export declare function addToCart(type: SearchTrackOptions, hit: SearchHitWithSku, quantity?: number): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../index.es-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("../index.es-DlUp67LT.cjs"),g={defaultCurrency:"EUR",defaultLocale:"en-US",currencySettings:{}},p={EUR:"de-DE",GBP:"en-GB",USD:"en-US",AUD:"en-AU",CAD:"en-CA",INR:"en-IN",AFN:"en-IN",BDT:"en-IN",BTN:"en-IN",MMK:"en-IN",NPR:"en-IN",PKR:"en-IN"};function y(u={}){const o={...g,...u};u.currencySettings||d.s(c=>{o.currencySettings=c.internal.getSettings().currencySettings??{}});function a(c,n){const{defaultCurrency:t,currencySettings:r,defaultLocale:i}=o,s=n??t,f=p[s]??i;if(s in r){const e=r[s],l=new Intl.NumberFormat(f,{useGrouping:!!e.groupingSeparator,minimumFractionDigits:e.decimalPlaces,maximumFractionDigits:e.decimalPlaces}).formatToParts(c).map(m=>m.type==="group"?e.groupingSeparator:m.type==="decimal"?e.decimalCharacter:m.value).join("");return e!=null&&e.currencyBeforeAmount?`${e.currencyToken}${l}`:`${l}${e==null?void 0:e.currencyToken}`}return new Intl.NumberFormat(f,{style:"currency",currency:s}).format(c)}return{formatCurrency:a}}function C(u){const{formatCurrency:o}=y(u);function a(n,t){const r={};return n.price!==void 0&&(r.priceText=o(n.price,t)),n.listPrice!==void 0&&(r.listPriceText=o(n.listPrice,t)),Object.assign({},n,r)}function c(n){return n.price!==void 0||n.listPrice!==void 0}return function(t){if(!c(t))return t;const r=a(t,t.priceCurrencyCode);return r.skus&&r.skus.some(c)&&(r.skus=r.skus.map(i=>c(i)?a(i,t.priceCurrencyCode):i)),r}}exports.getCurrencyFormatting=y;exports.priceDecorator=C;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
function t() {
|
|
2
|
+
window.nostojs = window.nostojs ?? function(o) {
|
|
3
|
+
(window.nostojs.q = window.nostojs.q ?? []).push(o);
|
|
4
|
+
};
|
|
5
|
+
}
|
|
6
|
+
async function u(o) {
|
|
7
|
+
return window.nostojs(o);
|
|
8
|
+
}
|
|
9
|
+
let i = null;
|
|
10
|
+
typeof window < "u" && (t(), u((o) => {
|
|
11
|
+
i = o.internal.getSettings();
|
|
12
|
+
}));
|
|
13
|
+
function a() {
|
|
14
|
+
return i;
|
|
15
|
+
}
|
|
16
|
+
async function d(o, w, s) {
|
|
17
|
+
var n;
|
|
18
|
+
if (!((n = window.Nosto) != null && n.addSkuToCart))
|
|
19
|
+
throw new Error("Nosto addSkuToCart function is not available");
|
|
20
|
+
await window.Nosto.addSkuToCart(o, w, s);
|
|
21
|
+
}
|
|
22
|
+
typeof window < "u" && t();
|
|
23
|
+
export {
|
|
24
|
+
d as L,
|
|
25
|
+
a as i,
|
|
26
|
+
u as s
|
|
27
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";function t(){window.nostojs=window.nostojs??function(o){(window.nostojs.q=window.nostojs.q??[]).push(o)}}async function i(o){return window.nostojs(o)}let s=null;typeof window<"u"&&(t(),i(o=>{s=o.internal.getSettings()}));function a(){return s}async function d(o,w,u){var n;if(!((n=window.Nosto)!=null&&n.addSkuToCart))throw new Error("Nosto addSkuToCart function is not available");await window.Nosto.addSkuToCart(o,w,u)}typeof window<"u"&&t();exports.L=d;exports.i=a;exports.s=i;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const b=require("preact"),E=require("../index.es-D_7T9vdv.cjs"),p=require("preact/hooks"),W=require("../core/core.cjs.js");function X(e){return e.type==="input"}function Z(e){return!!e&&typeof e=="object"&&"type"in e&&"props"in e}function O(e,t={depth:0}){const{children:r}=e;return b.toChildArray(r).map(n=>{if(!Z(n))return n;const o=e.updateElement(n,t);return o===null?null:(o.props={...o.props,children:O({...e,children:o.props.children},{depth:t.depth+1})},o)})}function ee({children:e,onSearchInput:t}){return O({children:e,updateElement:r=>(!X(r)||r.props.type!=="search"||(r.props={...r.props,onInput:n=>{n.target instanceof HTMLInputElement&&t(n.target)}}),r)})}const N=b.createContext(null),B=()=>{const e=p.useContext(N);if(!e)throw new Error("useConfig must be used within a ConfigProvider");return e},te="nosto:search:scrollPos";function re(){window.sessionStorage.setItem(te,window.scrollY.toString())}function ne({children:e,hit:t,onClick:r}){const{pageType:n}=B(),o=n==="autocomplete"?void 0:n;return O({children:e,updateElement:(u,a)=>(a.depth>0||(u.props={...u.props,onClick:c=>{t&&o&&E.s(l=>l.recordSearchClick(o,t)),re(),typeof r=="function"&&r(c)}}),u)})}var oe=0;function w(e,t,r,n,o,u){t||(t={});var a,c,l=t;if("ref"in l)for(c in l={},t)c=="ref"?a=t[c]:l[c]=t[c];var s={type:e,props:l,key:r,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--oe,__i:-1,__u:0,__source:o,__self:u};if(typeof e=="function"&&(a=e.defaultProps))for(c in a)l[c]===void 0&&(l[c]=a[c]);return b.options.vnode&&b.options.vnode(s),s}function q(){p.useEffect(()=>{const e=window.setTimeout(()=>{console.error("Nosto client script has not loaded after 3 seconds.")},3e3);E.s(()=>{window.clearTimeout(e)})},[])}const $=e=>String(e)==="[object Object]";function k(e){if(!$(e))return!1;const t=e.constructor;if(t===void 0)return!0;const r=t.prototype;return!(!$(r)||!r.hasOwnProperty("isPrototypeOf"))}function x(...e){return e.reduce((t,r)=>z(t,r))}function D(...e){return e.reduce((t,r)=>z(t,r))}function z(e,t){return k(e)&&k(t)?Object.entries(t).reduce((r,[n,o])=>(r[n]=z(r[n],o),r),{...e}):k(e)?e:t}function F(e,t){if(e===t)return!0;if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(Array.isArray(e)&&Array.isArray(t))return e.length!==t.length?!1:e.every((r,n)=>F(r,t[n]));if(k(e)&&k(t)){const r=Object.entries(e);return r.length!==Object.keys(t).length?!1:r.every(([n,o])=>F(o,t[n]))}return!1}function K(e,t={}){const r=new Map;let n=D(e,t??{});const o=D(e,t);function u(i){n=i(n);for(const f of r.values())f(n)}function a(i){u(f=>({...f,...i}))}function c(){return n}function l(){return structuredClone(o)}function s(i,f){let S;r.set(f,g=>{const y=i(g);F(y,S)||(S=y,f(y))})}function d(i){r.delete(i)}return{updateState:a,getState:c,getInitialState:l,onChange:s,clearOnChange:d}}const Q={loading:!0,query:{query:""},response:{query:""},initialized:!1};function A(e={}){return K(Q,e)}const P=b.createContext(A()),j={defaultCurrency:"EUR",queryModifications:e=>e},se={...j};function ce(e){return{pageType:"autocomplete",...se,...e}}function ae({config:e,store:t,children:r}){const n=t??A();return q(),w(N,{value:ce(e),children:w(P,{value:n,children:r})})}const ie={...j,persistentSearchCache:!1,preservePageScroll:!1};function ue(e){return{pageType:"category",...ie,...e}}function le({config:e,store:t,children:r}){const n=t??A();return q(),w(N,{value:ue(e),children:w(P,{value:n,children:r})})}const de={...j,persistentSearchCache:!1,preservePageScroll:!1};function fe(e={}){return{pageType:"serp",...de,...e}}function ge({config:e,store:t,children:r}){const n=t??A();return q(),w(N,{value:fe(e),children:w(P,{value:n,children:r})})}function pe(e){return Array.from(new Set(e))}function me(e,t){return{...t,products:{facets:e==="autocomplete"?void 0:["*"],fields:Se,...t.products},...t.keywords?{keywords:{...t.keywords,fields:pe([...ye,...t.keywords.fields??[]]),highlight:t.keywords.highlight??{preTag:"<strong>",postTag:"</strong>"}}}:{}}}const Se=["productId","url","name","imageUrl","imageHash","thumbUrl","description","brand","variantId","availability","price","priceText","categoryIds","categories","customFields.key","customFields.value","priceCurrencyCode","datePublished","listPrice","unitPricingBaseMeasure","unitPricingUnit","unitPricingMeasure","googleCategory","gtin","ageGroup","gender","condition","alternateImageUrls","ratingValue","reviewCount","inventoryLevel","skus.id","skus.name","skus.price","skus.listPrice","skus.priceText","skus.url","skus.imageUrl","skus.inventoryLevel","skus.customFields.key","skus.customFields.value","skus.availability","pid","onDiscount","extra.key","extra.value","saleable","available","tags1","tags2","tags3"],ye=["keyword","_redirect"];function he(...e){if(!e.every(t=>t==null))return e.filter(t=>Array.isArray(t)).reduce((t,r)=>t.concat(r),[])}const H="nosto.search.";function Ce(e){var r;const t=`${H}${e}`;(r=window.performance)==null||r.mark(`${t}.start`)}function ve(e){var r,n;const t=`${H}${e}`;(r=window.performance)==null||r.mark(`${t}.end`),(n=window.performance)==null||n.measure(t,`${t}.start`,`${t}.end`)}function I(e){return Ce(e),()=>ve(e)}function ke(e,t,r){const n=JSON.stringify(t);try{console.info("Setting storage",e,n),r.setItem(e,n)}catch(o){console.warn(o)}}function we(e,t){try{const r=t.getItem(e);if(r)return JSON.parse(r)}catch(r){console.warn(r)}}function Pe(e,t){ke(e,t,sessionStorage)}function be(e){return we(e,sessionStorage)}const L="nosto:search:searchResult";function Fe(e,t,r){if(!e)return;Pe(L,{query:t,result:r})}function Ae(e,t){if(!e)return null;const r=be(L);if(!r||!Re(r))return null;const n=U(r.query);return F(U(t),n)?r.result:null}function U(e){return{accountId:e.accountId,customRules:e.customRules,explain:e.explain,keywords:e.keywords,products:e.products,query:e.query,redirect:e.redirect,rules:e.rules,segments:e.segments,sessionParams:e.sessionParams}}function Re(e){return typeof e=="object"&&e!==null&&"query"in e&&"result"in e}async function G(e,t,r){var s,d,i;const n=I("newSearch"),o=e.config.pageType,u=x(e.store.getInitialState().query,t),a=x(e.config.search,r,{track:o,redirect:o!=="autocomplete",isKeyword:!!(r!=null&&r.isKeyword)});e.store.updateState({query:u,loading:!0,initialized:!0});const c=o!=="autocomplete"&&e.config.persistentSearchCache,l=e.config.queryModifications({...u,products:{...u.products,filter:he((d=(s=e.store.getInitialState().query)==null?void 0:s.products)==null?void 0:d.filter,(i=t.products)==null?void 0:i.filter)}},o);try{let f;const S=Ae(c,l);if(S)f=S;else{const g=me(o,l);f=await W.search(g,a),Fe(c,l,f)}e.store.updateState({response:f,loading:!1})}catch(f){console.error("Search action failed",f)}n()}async function V(e,t,r){const n=I("updateSearch"),o=x(e.store.getState().query,{products:{from:0}},t);await G(e,o,r),n()}async function Me(e,t,r){var a;const n=I("replaceFilter"),o=(a=e.store.getState().query.products)==null?void 0:a.filter,u=r!==void 0?[{field:t,[typeof r=="object"?"range":"value"]:[r]}]:[];await V(e,{products:{filter:[...(o==null?void 0:o.filter(c=>c.field!==t))??[],...u]}}),n()}async function _e(e,t,r,n){var l,s;const o=I("toggleProductFilter"),u=(l=e.store.getState().query.products)==null?void 0:l.filter,a=u==null?void 0:u.find(d=>d.value instanceof Array&&d.field===t),c=a!=null&&a.value?{...a,value:[...a.value.filter(d=>!F(d,r)),...n?[r]:[]]}:n?{field:t,value:[r]}:void 0;await V(e,{products:{filter:[...(u==null?void 0:u.filter(d=>d!==a))??[],...(s=c==null?void 0:c.value)!=null&&s.length?[c]:[]]}}),o()}function v(){const e=B(),t=p.useContext(P),r=p.useMemo(()=>({config:e,store:t}),[e,t]),n=p.useCallback((c,l)=>G(r,c,l),[r]),o=p.useCallback((c,l)=>V(r,c,l),[r]),u=p.useCallback((c,l,s)=>_e(r,c,l,s),[r]),a=p.useCallback((c,l)=>Me(r,c,l),[r]);return{newSearch:n,updateSearch:o,toggleProductFilter:u,replaceFilter:a}}function C(e=Ne){const t=p.useContext(P),[r,n]=p.useState(e(t.getState()));return t.onChange(e,n),p.useEffect(()=>()=>t.clearOnChange(n),[t]),r}const Ne=e=>e;function Ie(e){const t=C(r=>r.response);return e&&Array.isArray(e)||e&&k(e)?e:t}function Te(e){var a;const t=((a=e.data)==null?void 0:a.filter(c=>c.selected).length)??0,[r,n]=p.useState(t>0),{toggleProductFilter:o}=v();return{active:r,selectedFiltersCount:t,toggleActive:()=>{n(!r)},toggleProductFilter:o}}function xe(){const{loading:e,facets:t}=C(r=>{var n,o;return{loading:r.loading,facets:((o=(n=r.response)==null?void 0:n.products)==null?void 0:o.facets)??[]}});return{loading:e,facets:t}}function Ee(){const[e,t]=p.useState([]),[r,n]=p.useState([]);return p.useEffect(()=>{E.s(async o=>{const{products:u,segments:a}=await o.getSearchSessionParams();t(a??[]),n((u==null?void 0:u.personalizationBoost)??[])})},[]),{segments:e,boost:r}}function Oe(){const{facets:e}=C(s=>{var d;return{facets:((d=s.response.products)==null?void 0:d.facets)??[]}}),{replaceFilter:t,toggleProductFilter:r}=v(),n=p.useCallback(s=>{const d=e==null?void 0:e.find(i=>i.type==="stats"&&i.field===s);if(d&&"min"in d&&"max"in d)return d},[e]),o=p.useCallback(s=>{var d;return((d=e==null?void 0:e.find(i=>i.field===s))==null?void 0:d.name)??s},[e]),u=p.useCallback(s=>"field"in s&&(s.value instanceof Array||s.range instanceof Array),[]),a=p.useCallback(s=>{var d;return{...s,range:(d=s.range)==null?void 0:d.map(i=>({gt:i.gt?Number(i.gt):i.gt,gte:i.gte?Number(i.gte):i.gte,lt:i.lt?Number(i.lt):i.lt,lte:i.lte?Number(i.lte):i.lte}))}},[]),c=p.useCallback(s=>(s.value??[]).map(i=>({value:i,field:s.field,name:o(s.field),filter:a(s),remove:()=>{r(s.field,i,!1)}})),[a,o,r]),l=p.useCallback(s=>(s.range??[]).map(i=>{var g,y;const f=i.gte??i.gt??((g=n(s.field))==null?void 0:g.min),S=i.lte??i.lt??((y=n(s.field))==null?void 0:y.max);if(f!==void 0&&S!==void 0)return{value:`${f} - ${S}`,field:s.field,name:o(s.field),filter:a(s),remove:()=>{t(s.field,void 0)}}}).filter(Boolean),[a,n,o,t]);return{selectFilters:u,toValueFilter:c,toRangeFilter:l}}function J(){const{filter:e}=C(c=>{var l;return{filter:((l=c.query.products)==null?void 0:l.filter)??[]}}),{updateSearch:t}=v(),{selectFilters:r,toValueFilter:n,toRangeFilter:o}=Oe(),u=p.useMemo(()=>e?e.filter(r).flatMap(c=>"value"in c?n(c):"range"in c?o(c):[]).filter(Boolean):[],[e,r,o,n]),a=p.useCallback(()=>{t({products:{filter:[]}})},[t]);return{filters:u,removeAll:a}}function _(e){if(typeof e=="number")return e;if(typeof e!="string")return;const t=Number(e);return isNaN(t)?void 0:t}function Y(e){var i,f,S;const{replaceFilter:t}=v(),{query:r,products:n}=C(g=>({query:g.query,products:g.response.products})),o=(i=n==null?void 0:n.facets)==null?void 0:i.find(g=>g.id===e);if(!o)return{min:0,max:0,range:[0,0],updateRange:()=>{}};const u=(S=(f=r.products)==null?void 0:f.filter)==null?void 0:S.find(g=>g.field===o.field),a=u!=null&&u.range?u.range[0]:void 0,c=typeof a=="object"&&("gte"in a||"lte"in a)?[_(a.gte),_(a.lte)]:[void 0,void 0],l="min"in o?Math.floor(o.min):0,s="max"in o?Math.ceil(o.max):0,d=([g,y])=>{const m=g!==void 0?Math.floor(g):void 0,h=y!==void 0?Math.ceil(y):void 0,R=m!==void 0,M=h!==void 0;(l===m||!R)&&(s===h||!M)?t(o.field,void 0):(l===m||!R)&&M?t(o.field,{lte:h.toString()}):(s===h||!M)&&R?t(o.field,{gte:m.toString()}):R&&M&&t(o.field,{gte:m.toString(),lte:h.toString()})};return{min:l,max:s,range:[c[0]??l,c[1]??s],updateRange:d}}function qe(e,t){const{min:r,max:n,range:o,updateRange:u}=Y(e),{filters:a}=J(),c=p.useMemo(()=>{var y;const i=a.find(m=>{var h;return(h=m==null?void 0:m.filter)==null?void 0:h.range});let f=null;if(i){const m=(y=i.filter.range)==null?void 0:y[0];f=[_(m==null?void 0:m.gte),_(m==null?void 0:m.lte)]}const S=[];let g=Math.floor(r/t)*t;for(;g<n;){const m=g+t,h=f&&f[0]===g&&f[1]===m;S.push({min:g,max:m,selected:h}),g=m}return S},[a,r,n,t]),l=i=>{u([i,o[1]])},s=i=>{u([o[0],i])},d=r!==o[0]||n!==o[1];return{min:r,max:n,range:o,updateRange:u,ranges:c,handleMinChange:l,handleMaxChange:s,isSelected:d}}function ze(){const{products:e,keywords:t}=C(r=>r.response);return{products:e??{hits:[],total:0},keywords:t??{hits:[],total:0}}}function je(){const e=C(r=>{var n;return(n=r.query.products)==null?void 0:n.filter});return p.useMemo(()=>e?e.reduce((r,n)=>r+(Array.isArray(n.value)?n.value.length:1),0):0,[e])}function T(e){return e&&!Number.isNaN(e)?e:0}function Ve(e,t){const{from:r,size:n,total:o}=C(s=>{var d,i,f,S,g;return{from:T(((d=s.query.products)==null?void 0:d.from)??0),size:T(((f=(i=s.response)==null?void 0:i.products)==null?void 0:f.size)??0),total:T(((g=(S=s.response)==null?void 0:S.products)==null?void 0:g.total)??0)}}),{updateSearch:u}=v(),a=r+n,c=[...e].reverse().filter(s=>s+t<o);return{from:r,to:a,total:o,size:n,sizeOptions:c,handleSizeChange:s=>{u({products:{size:s}})}}}function $e(e,t){return e.length!==t.length?!1:e.every(r=>t.find(n=>r.field===n.field&&r.order===n.order))}function De(e){var u,a;const t=C(c=>c.query),{updateSearch:r}=v();return{activeSort:((u=e.find(c=>{var l;return $e(c.value.sort,((l=t.products)==null?void 0:l.sort)||[])}))==null?void 0:u.id)??((a=e[0])==null?void 0:a.id),setSort:c=>{const l=e.find(s=>s.id===c);l&&r({products:{sort:l.value.sort}})}}}exports.AutocompletePageProvider=ae;exports.CategoryPageProvider=le;exports.SearchInput=ee;exports.SearchPageProvider=ge;exports.SerpElement=ne;exports.StoreContext=P;exports.createExtendableStore=K;exports.createStore=A;exports.defaultState=Q;exports.useActions=v;exports.useDecoratedSearchResults=Ie;exports.useFacet=Te;exports.useFacets=xe;exports.useNostoAppState=C;exports.usePersonalization=Ee;exports.useProductFilters=J;exports.useRange=Y;exports.useRangeSelector=qe;exports.useResponse=ze;exports.useSelectedFiltersCount=je;exports.useSizeOptions=Ve;exports.useSort=De;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const P=require("preact"),p=require("preact/hooks"),re=require("../search-BVJZK90N.cjs"),q=require("../index.es-DlUp67LT.cjs");var ne=" daum[ /]| deusu/| yadirectfetcher|(?:^|[^g])news(?!sapphire)|(?<! (?:channel/|google/))google(?!(app|/google| pixel))|(?<! cu)bots?(?:\\b|_)|(?<!(?:lib))http|(?<![hg]m)score|@[a-z][\\w-]+\\.|\\(\\)|\\.com\\b|\\btime/|\\||^<|^[\\w \\.\\-\\(?:\\):%]+(?:/v?\\d+(?:\\.\\d+)?(?:\\.\\d{1,10})*?)?(?:,|$)|^[^ ]{50,}$|^\\d+\\b|^\\w*search\\b|^\\w+/[\\w\\(\\)]*$|^active|^ad muncher|^amaya|^avsdevicesdk/|^biglotron|^bot|^bw/|^clamav[ /]|^client/|^cobweb/|^custom|^ddg[_-]android|^discourse|^dispatch/\\d|^downcast/|^duckduckgo|^email|^facebook|^getright/|^gozilla/|^hobbit|^hotzonu|^hwcdn/|^igetter/|^jeode/|^jetty/|^jigsaw|^microsoft bits|^movabletype|^mozilla/\\d\\.\\d\\s[\\w\\.-]+$|^mozilla/\\d\\.\\d\\s\\(compatible;?(?:\\s\\w+\\/\\d+\\.\\d+)?\\)$|^navermailapp|^netsurf|^offline|^openai/|^owler|^php|^postman|^python|^rank|^read|^reed|^rest|^rss|^snapchat|^space bison|^svn|^swcd |^taringa|^thumbor/|^track|^w3c|^webbandit/|^webcopier|^wget|^whatsapp|^wordpress|^xenu link sleuth|^yahoo|^yandex|^zdm/\\d|^zoom marketplace/|^{{.*}}$|adscanner/|analyzer|archive|ask jeeves/teoma|audit|bit\\.ly/|bluecoat drtr|browsex|burpcollaborator|capture|catch|check\\b|checker|chrome-lighthouse|chromeframe|classifier|cloudflare|convertify|cookiehubscan|crawl|cypress/|dareboost|datanyze|dejaclick|detect|dmbrowser|download|evc-batch/|exaleadcloudview|feed|firephp|functionize|gomezagent|headless|httrack|hubspot marketing grader|hydra|ibisbrowser|infrawatch|insight|inspect|iplabel|ips-agent|java(?!;)|jsjcw_scanner|library|linkcheck|mail\\.ru/|manager|measure|neustar wpm|node|nutch|offbyone|optimize|pageburst|pagespeed|parser|perl|phantomjs|pingdom|powermarks|preview|proxy|ptst[ /]\\d|retriever|rexx;|rigor|rss\\b|scanner\\.|scrape|server|sogou|sparkler/|speedcurve|spider|splash|statuscake|supercleaner|synapse|synthetic|tools|torrent|transcoder|url|validator|virtuoso|wappalyzer|webglance|webkit2png|whatcms/|zgrab",oe=/bot|crawl|http|lighthouse|scan|search|spider/i,z;function se(){if(z instanceof RegExp)return z;try{z=new RegExp(ne,"i")}catch{z=oe}return z}function ae(e){return!!e&&se().test(e)}function Q(){return ae(navigator.userAgent)}var ce=0;function w(e,r,t,n,o,c){r||(r={});var s,a,l=r;if("ref"in l)for(a in l={},r)a=="ref"?s=r[a]:l[a]=r[a];var i={type:e,props:l,key:t,ref:s,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ce,__i:-1,__u:0,__source:o,__self:c};if(typeof e=="function"&&(s=e.defaultProps))for(a in s)l[a]===void 0&&(l[a]=s[a]);return P.options.vnode&&P.options.vnode(i),i}const L=e=>String(e)==="[object Object]";function F(e){if(!L(e))return!1;const r=e.constructor;if(r===void 0)return!0;const t=r.prototype;return!(!L(t)||!t.hasOwnProperty("isPrototypeOf"))}function T(...e){return e.reduce((r,t)=>E(r,t))}function B(...e){return e.reduce((r,t)=>E(r,t))}function E(e,r){return F(e)&&F(r)?Object.entries(r).reduce((t,[n,o])=>(t[n]=E(t[n],o),t),{...e}):F(e)?e:r}function R(e,r){if(e===r)return!0;if(e instanceof Date&&r instanceof Date)return e.getTime()===r.getTime();if(Array.isArray(e)&&Array.isArray(r))return e.length!==r.length?!1:e.every((t,n)=>R(t,r[n]));if(F(e)&&F(r)){const t=Object.entries(e);return t.length!==Object.keys(r).length?!1:t.every(([n,o])=>R(o,r[n]))}return!1}function K(e,r={}){const t=new Map;let n=B(e,r??{});const o=B(e,r);function c(u){n=u(n);for(const f of t.values())f(n)}function s(u){c(f=>({...f,...u}))}function a(){return n}function l(){return structuredClone(o)}function i(u,f){let m;t.set(f,g=>{const y=u(g);R(y,m)||(m=y,f(y))})}function d(u){t.delete(u)}return{updateState:s,getState:a,getInitialState:l,onChange:i,clearOnChange:d}}const H={loading:!0,query:{query:""},response:{query:""},initialized:!1};function A(e={}){return K(H,e)}const M=P.createContext(A());function v(e=ie){const r=p.useContext(M),[t,n]=p.useState(e(r.getState()));return r.onChange(e,n),p.useEffect(()=>()=>r.clearOnChange(n),[r]),t}const ie=e=>e;function W(e,...r){return r.reduce((t,n)=>(t[n]=e[n],t),{})}const I=P.createContext(null),G=()=>{const e=p.useContext(I);if(!e)throw new Error("useConfig must be used within a ConfigProvider");return e};function ue(e){return Array.from(new Set(e))}function le(e,r){return{...r,products:{facets:e==="autocomplete"?void 0:["*"],fields:de,...r.products},...r.keywords?{keywords:{...r.keywords,fields:ue([...fe,...r.keywords.fields??[]]),highlight:r.keywords.highlight??{preTag:"<strong>",postTag:"</strong>"}}}:{}}}const de=["productId","url","name","imageUrl","imageHash","thumbUrl","description","brand","variantId","availability","price","priceText","categoryIds","categories","customFields.key","customFields.value","priceCurrencyCode","datePublished","listPrice","unitPricingBaseMeasure","unitPricingUnit","unitPricingMeasure","googleCategory","gtin","ageGroup","gender","condition","alternateImageUrls","ratingValue","reviewCount","inventoryLevel","skus.id","skus.name","skus.price","skus.listPrice","skus.priceText","skus.url","skus.imageUrl","skus.inventoryLevel","skus.customFields.key","skus.customFields.value","skus.availability","pid","onDiscount","extra.key","extra.value","saleable","available","tags1","tags2","tags3"],fe=["keyword","_redirect"];function pe(...e){if(!e.every(r=>r==null))return e.filter(r=>Array.isArray(r)).reduce((r,t)=>r.concat(t),[])}const J="nosto.search.";function ge(e){var t;const r=`${J}${e}`;(t=window.performance)==null||t.mark(`${r}.start`)}function he(e){var t,n;const r=`${J}${e}`;(t=window.performance)==null||t.mark(`${r}.end`),(n=window.performance)==null||n.measure(r,`${r}.start`,`${r}.end`)}function _(e){return ge(e),()=>he(e)}function me(e,r,t){const n=JSON.stringify(r);try{console.info("Setting storage",e,n),t.setItem(e,n)}catch(o){console.warn(o)}}function ye(e,r){try{const t=r.getItem(e);if(t)return JSON.parse(t)}catch(t){console.warn(t)}}function ve(e,r){me(e,r,sessionStorage)}function Se(e){return ye(e,sessionStorage)}const Y="nosto:search:searchResult";function we(e,r,t){if(!e)return;ve(Y,{query:r,result:t})}function be(e,r){if(!e)return null;const t=Se(Y);if(!t||!ke(t))return null;const n=U(t.query);return R(U(r),n)?t.result:null}function U(e){return{accountId:e.accountId,customRules:e.customRules,explain:e.explain,keywords:e.keywords,products:e.products,query:e.query,redirect:e.redirect,rules:e.rules,segments:e.segments,sessionParams:e.sessionParams}}function ke(e){return typeof e=="object"&&e!==null&&"query"in e&&"result"in e}async function X(e,r,t){var i,d,u;const n=_("newSearch"),o=e.config.pageType,c=T(e.store.getInitialState().query,r),s=T(e.config.search,t,{track:o,redirect:o!=="autocomplete",isKeyword:!!(t!=null&&t.isKeyword)});e.store.updateState({query:c,loading:!0,initialized:!0});const a=o!=="autocomplete"&&e.config.persistentSearchCache,l=e.config.queryModifications({...c,products:{...c.products,filter:pe((d=(i=e.store.getInitialState().query)==null?void 0:i.products)==null?void 0:d.filter,(u=r.products)==null?void 0:u.filter)}},o);try{let f;const m=be(a,l);if(m)f=m;else{const g=le(o,l);f=await re.search(g,s),we(a,l,f)}e.store.updateState({response:f,loading:!1})}catch(f){console.error("Search action failed",f)}n()}async function O(e,r,t){const n=_("updateSearch"),o=T(e.store.getState().query,{products:{from:0}},r);await X(e,o,t),n()}async function Ce(e,r,t){var s;const n=_("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]}]:[];await O(e,{products:{filter:[...(o==null?void 0:o.filter(a=>a.field!==r))??[],...c]}}),n()}async function Pe(e,r,t,n){var l,i;const o=_("toggleProductFilter"),c=(l=e.store.getState().query.products)==null?void 0:l.filter,s=c==null?void 0:c.find(d=>d.value instanceof Array&&d.field===r),a=s!=null&&s.value?{...s,value:[...s.value.filter(d=>!R(d,t)),...n?[t]:[]]}:n?{field:r,value:[t]}:void 0;await O(e,{products:{filter:[...(c==null?void 0:c.filter(d=>d!==s))??[],...(i=a==null?void 0:a.value)!=null&&i.length?[a]:[]]}}),o()}function k(){const e=G(),r=p.useContext(M),t=p.useMemo(()=>({config:e,store:r}),[e,r]),n=p.useCallback((a,l)=>X(t,a,l),[t]),o=p.useCallback((a,l)=>O(t,a,l),[t]),c=p.useCallback((a,l,i)=>Pe(t,a,l,i),[t]),s=p.useCallback((a,l)=>Ce(t,a,l),[t]);return{newSearch:n,updateSearch:o,toggleProductFilter:c,replaceFilter:s}}function Fe({from:e,size:r,pageSize:t}){return Q()?{products:{from:e+t}}:{products:{size:r+t}}}function j(e=24){const{from:r,size:t}=v(c=>{var s,a;return{from:((s=c.query.products)==null?void 0:s.from)??0,size:((a=c.query.products)==null?void 0:a.size)??0}}),{updateSearch:n}=k();return{loadMore:p.useCallback(async()=>{await n(Fe({from:r,size:t,pageSize:e}))},[r,t,e,n])}}function Me({pageSize:e}){const{loadMore:r}=j(e);return w("button",{onClick:r,children:"More results"})}function Z(e,r){var c,s,a;const t=((c=r.products)==null?void 0:c.total)??0,n=((s=e.products)==null?void 0:s.from)??0,o=((a=e.products)==null?void 0:a.size)??0;return t>0&&t>n+o}function ze(){return!!(window.IntersectionObserver&&window.IntersectionObserverEntry&&"intersectionRatio"in window.IntersectionObserverEntry.prototype)}function Re({children:e,loadMoreComponent:r,pageSize:t}){const{loading:n,query:o,response:c}=v(a=>W(a,"loading","query","response")),s=!n&&Z(o,c);return w(P.Fragment,{children:[e,s&&(r?w(r,{pageSize:t}):w(Me,{pageSize:t}))]})}function Ae({children:e,pageSize:r}){const t=p.useRef(null),{query:n,response:o}=v(s=>W(s,"query","response")),{loadMore:c}=j(r);return p.useEffect(()=>{let s,a;return Z(n,o)&&(s=t.current,a=new IntersectionObserver(l=>{const i=l[0];i!=null&&i.isIntersecting&&c()}),s&&a.observe(s)),()=>{s&&a.unobserve(s)}},[o]),w(P.Fragment,{children:[e,w("div",{ref:t,style:{height:"1px"}})]})}const xe=!Q()&&ze()?Ae:Re;function Ie(e){return e.type==="input"}function _e(e){return!!e&&typeof e=="object"&&"type"in e&&"props"in e}function $(e,r={depth:0}){const{children:t}=e;return P.toChildArray(t).map(n=>{if(!_e(n))return n;const o=e.updateElement(n,r);return o===null?null:(o.props={...o.props,children:$({...e,children:o.props.children},{depth:r.depth+1})},o)})}function Ne({children:e,onSearchInput:r}){return $({children:e,updateElement:t=>(!Ie(t)||t.props.type!=="search"||(t.props={...t.props,onInput:n=>{n.target instanceof HTMLInputElement&&r(n.target)}}),t)})}const Te="nosto:search:scrollPos";function qe(){window.sessionStorage.setItem(Te,window.scrollY.toString())}function Ee({children:e,hit:r,onClick:t}){const{pageType:n}=G(),o=n==="autocomplete"?void 0:n;return $({children:e,updateElement:(c,s)=>(s.depth>0||(c.props={...c.props,onClick:a=>{r&&o&&q.s(l=>l.recordSearchClick(o,r)),qe(),typeof t=="function"&&t(a)}}),c)})}function V(){p.useEffect(()=>{const e=window.setTimeout(()=>{console.error("Nosto client script has not loaded after 3 seconds.")},3e3);q.s(()=>{window.clearTimeout(e)})},[])}const D={defaultCurrency:"EUR",queryModifications:e=>e},Oe={...D};function je(e){return{pageType:"autocomplete",...Oe,...e}}function $e({config:e,store:r,children:t}){const n=r??A();return V(),w(I,{value:je(e),children:w(M,{value:n,children:t})})}const Ve={...D,persistentSearchCache:!1,preservePageScroll:!1};function De(e){return{pageType:"category",...Ve,...e}}function Le({config:e,store:r,children:t}){const n=r??A();return V(),w(I,{value:De(e),children:w(M,{value:n,children:t})})}const Be={...D,persistentSearchCache:!1,preservePageScroll:!1};function Ue(e={}){return{pageType:"serp",...Be,...e}}function Qe({config:e,store:r,children:t}){const n=r??A();return V(),w(I,{value:Ue(e),children:w(M,{value:n,children:t})})}function Ke(e){const r=v(t=>t.response);return e&&Array.isArray(e)||e&&F(e)?e:r}function He(e){var s;const r=((s=e.data)==null?void 0:s.filter(a=>a.selected).length)??0,[t,n]=p.useState(r>0),{toggleProductFilter:o}=k();return{active:t,selectedFiltersCount:r,toggleActive:()=>{n(!t)},toggleProductFilter:o}}function We(){const{loading:e,facets:r}=v(t=>{var n,o;return{loading:t.loading,facets:((o=(n=t.response)==null?void 0:n.products)==null?void 0:o.facets)??[]}});return{loading:e,facets:r}}function Ge(e,r){const t=r-e;return!isNaN(t)&&t>0?new Array(r-e).fill(void 0).map((n,o)=>o+e):[]}function Je(e){const{query:r,products:t}=v(n=>({query:n.query,products:n.response.products}));return p.useMemo(()=>{var C;if(!t)return{totalPages:0,resultsFrom:0,resultsTo:0,pages:[]};const n=((C=r.products)==null?void 0:C.from)??0,o=(e==null?void 0:e.width)??1/0,c=Math.max(Math.floor(o-1)/2,1),s=t.size>0?Math.floor(n/t.size)+1:1,a=t.size>0?Math.ceil(t.total/t.size):0,l=b=>b>=s-c&&b<=s+c,i=n+1,d=Math.min(n+t.total,t.total),u={from:n,page:s,current:!0},f=b=>({from:(b-1)*t.size,page:b,current:b===s}),m=s>1?f(s-1):void 0,g=s<a?f(s+1):void 0,y=c===1/0||s-c-1>1?f(1):void 0,h=c===1/0||s+c+1<a?f(a):void 0,S=Ge(1,a+1).filter(l).map(f);return{totalPages:a,resultsFrom:i,resultsTo:d,current:u,prev:m,next:g,first:y,last:h,pages:S}},[r,t,e==null?void 0:e.width])}function Ye(){const[e,r]=p.useState([]),[t,n]=p.useState([]);return p.useEffect(()=>{q.s(async o=>{const{products:c,segments:s}=await o.getSearchSessionParams();r(s??[]),n((c==null?void 0:c.personalizationBoost)??[])})},[]),{segments:e,boost:t}}function Xe(){const{facets:e}=v(i=>{var d;return{facets:((d=i.response.products)==null?void 0:d.facets)??[]}}),{replaceFilter:r,toggleProductFilter:t}=k(),n=p.useCallback(i=>{const d=e==null?void 0:e.find(u=>u.type==="stats"&&u.field===i);if(d&&"min"in d&&"max"in d)return d},[e]),o=p.useCallback(i=>{var d;return((d=e==null?void 0:e.find(u=>u.field===i))==null?void 0:d.name)??i},[e]),c=p.useCallback(i=>"field"in i&&(i.value instanceof Array||i.range instanceof Array),[]),s=p.useCallback(i=>{var d;return{...i,range:(d=i.range)==null?void 0:d.map(u=>({gt:u.gt?Number(u.gt):u.gt,gte:u.gte?Number(u.gte):u.gte,lt:u.lt?Number(u.lt):u.lt,lte:u.lte?Number(u.lte):u.lte}))}},[]),a=p.useCallback(i=>(i.value??[]).map(u=>({value:u,field:i.field,name:o(i.field),filter:s(i),remove:()=>{t(i.field,u,!1)}})),[s,o,t]),l=p.useCallback(i=>(i.range??[]).map(u=>{var g,y;const f=u.gte??u.gt??((g=n(i.field))==null?void 0:g.min),m=u.lte??u.lt??((y=n(i.field))==null?void 0:y.max);if(f!==void 0&&m!==void 0)return{value:`${f} - ${m}`,field:i.field,name:o(i.field),filter:s(i),remove:()=>{r(i.field,void 0)}}}).filter(Boolean),[s,n,o,r]);return{selectFilters:c,toValueFilter:a,toRangeFilter:l}}function ee(){const{filter:e}=v(a=>{var l;return{filter:((l=a.query.products)==null?void 0:l.filter)??[]}}),{updateSearch:r}=k(),{selectFilters:t,toValueFilter:n,toRangeFilter:o}=Xe(),c=p.useMemo(()=>e?e.filter(t).flatMap(a=>"value"in a?n(a):"range"in a?o(a):[]).filter(Boolean):[],[e,t,o,n]),s=p.useCallback(()=>{r({products:{filter:[]}})},[r]);return{filters:c,removeAll:s}}function x(e){if(typeof e=="number")return e;if(typeof e!="string")return;const r=Number(e);return isNaN(r)?void 0:r}function te(e){var u,f,m;const{replaceFilter:r}=k(),{query:t,products:n}=v(g=>({query:g.query,products:g.response.products})),o=(u=n==null?void 0:n.facets)==null?void 0:u.find(g=>g.id===e);if(!o)return{min:0,max:0,range:[0,0],updateRange:()=>{}};const c=(m=(f=t.products)==null?void 0:f.filter)==null?void 0:m.find(g=>g.field===o.field),s=c!=null&&c.range?c.range[0]:void 0,a=typeof s=="object"&&("gte"in s||"lte"in s)?[x(s.gte),x(s.lte)]:[void 0,void 0],l="min"in o?Math.floor(o.min):0,i="max"in o?Math.ceil(o.max):0,d=([g,y])=>{const h=g!==void 0?Math.floor(g):void 0,S=y!==void 0?Math.ceil(y):void 0,C=h!==void 0,b=S!==void 0;(l===h||!C)&&(i===S||!b)?r(o.field,void 0):(l===h||!C)&&b?r(o.field,{lte:S.toString()}):(i===S||!b)&&C?r(o.field,{gte:h.toString()}):C&&b&&r(o.field,{gte:h.toString(),lte:S.toString()})};return{min:l,max:i,range:[a[0]??l,a[1]??i],updateRange:d}}function Ze(e,r){const{min:t,max:n,range:o,updateRange:c}=te(e),{filters:s}=ee(),a=p.useMemo(()=>{var y;const u=s.find(h=>{var S;return(S=h==null?void 0:h.filter)==null?void 0:S.range});let f=null;if(u){const h=(y=u.filter.range)==null?void 0:y[0];f=[x(h==null?void 0:h.gte),x(h==null?void 0:h.lte)]}const m=[];let g=Math.floor(t/r)*r;for(;g<n;){const h=g+r,S=f&&f[0]===g&&f[1]===h;m.push({min:g,max:h,selected:S}),g=h}return m},[s,t,n,r]),l=u=>{c([u,o[1]])},i=u=>{c([o[0],u])},d=t!==o[0]||n!==o[1];return{min:t,max:n,range:o,updateRange:c,ranges:a,handleMinChange:l,handleMaxChange:i,isSelected:d}}function et(){const{products:e,keywords:r}=v(t=>t.response);return{products:e??{hits:[],total:0},keywords:r??{hits:[],total:0}}}function tt(){const e=v(t=>{var n;return(n=t.query.products)==null?void 0:n.filter});return p.useMemo(()=>e?e.reduce((t,n)=>t+(Array.isArray(n.value)?n.value.length:1),0):0,[e])}function N(e){return e&&!Number.isNaN(e)?e:0}function rt(e,r){const{from:t,size:n,total:o}=v(i=>{var d,u,f,m,g;return{from:N(((d=i.query.products)==null?void 0:d.from)??0),size:N(((f=(u=i.response)==null?void 0:u.products)==null?void 0:f.size)??0),total:N(((g=(m=i.response)==null?void 0:m.products)==null?void 0:g.total)??0)}}),{updateSearch:c}=k(),s=t+n,a=[...e].reverse().filter(i=>i+r<o);return{from:t,to:s,total:o,size:n,sizeOptions:a,handleSizeChange:i=>{c({products:{size:i}})}}}function nt(e,r){return e.length!==r.length?!1:e.every(t=>r.find(n=>t.field===n.field&&t.order===n.order))}function ot(e){var c,s;const r=v(a=>a.query),{updateSearch:t}=k();return{activeSort:((c=e.find(a=>{var l;return nt(a.value.sort,((l=r.products)==null?void 0:l.sort)||[])}))==null?void 0:c.id)??((s=e[0])==null?void 0:s.id),setSort:a=>{const l=e.find(i=>i.id===a);l&&t({products:{sort:l.value.sort}})}}}exports.AutocompletePageProvider=$e;exports.CategoryPageProvider=Le;exports.InfiniteScroll=xe;exports.SearchInput=Ne;exports.SearchPageProvider=Qe;exports.SerpElement=Ee;exports.StoreContext=M;exports.createExtendableStore=K;exports.createStore=A;exports.defaultState=H;exports.useActions=k;exports.useDecoratedSearchResults=Ke;exports.useFacet=He;exports.useFacets=We;exports.useLoadMore=j;exports.useNostoAppState=v;exports.usePagination=Je;exports.usePersonalization=Ye;exports.useProductFilters=ee;exports.useRange=te;exports.useRangeSelector=Ze;exports.useResponse=et;exports.useSelectedFiltersCount=tt;exports.useSizeOptions=rt;exports.useSort=ot;
|
package/dist/preact/preact.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
/** @module preact */
|
|
2
|
+
export { InfiniteScroll } from './src/components/InfiniteScroll/InfiniteScroll';
|
|
2
3
|
export { SearchInput } from './src/components/SearchInput';
|
|
3
4
|
export { SerpElement } from './src/components/SerpElement';
|
|
4
5
|
export type { PublicAutocompleteConfig as AutocompleteConfig } from './src/config/pages/autocomplete/config';
|
|
@@ -11,7 +12,9 @@ export { useActions } from './src/hooks/useActions';
|
|
|
11
12
|
export { useDecoratedSearchResults } from './src/hooks/useDecoratedSearchResults';
|
|
12
13
|
export { useFacet } from './src/hooks/useFacet';
|
|
13
14
|
export { useFacets } from './src/hooks/useFacets';
|
|
15
|
+
export { useLoadMore } from './src/hooks/useLoadMore/useLoadMore';
|
|
14
16
|
export { useNostoAppState } from './src/hooks/useNostoAppState';
|
|
17
|
+
export { type Page, usePagination } from './src/hooks/usePagination';
|
|
15
18
|
export { usePersonalization } from './src/hooks/usePersonalization';
|
|
16
19
|
export { useProductFilters } from './src/hooks/useProductFilters/useProductFilters';
|
|
17
20
|
export { useRange } from './src/hooks/useRange';
|