1import{K as e,V as t,j as n}from"./chunk-QUQL4437-BkK4zIzZ.js";import{t as r}from"./jsx-runtime-BgnxPms1.js";var i=e(t(),1),a=r(),o={items:[],attributes:[]},s=(0,i.createContext)(void 0),c=(e,t)=>{switch(t.type){case`ADD_ITEM`:return e.items.find(e=>e.id===t.item.id)?{...e,items:e.items.map(e=>e.id===t.item.id?{...e,quantity:e.quantity+t.item.quantity}:e)}:{...e,items:[...e.items,t.item]};case`REMOVE_ITEM`:return{...e,items:e.items.filter(e=>e.id!==t.id)};case`UPDATE_QUANTITY`:return{...e,items:e.items.map(e=>e.id===t.id?{...e,quantity:t.quantity}:e)};case`UPDATE_PRODUCT`:return e.items.find(e=>e.id===t.id)?t.quantity<=0?{...e,items:e.items.filter(e=>e.id!==t.id)}:{...e,items:e.items.map(e=>e.id===t.id?{...e,quantity:t.quantity}:e)}:t.quantity<=0?e:{...e,items:[...e.items,{id:t.id,quantity:t.quantity}]};case`CLEAR_CART`:return{...e,items:[]};case`PRUNE_CART`:{let n=t.allAvailablePricePoints.map(e=>d(e.shopifyVariantId));return{...e,items:e.items.filter(e=>n.includes(e.id))}}case`SET_CART`:return t.state;case`MERGE_CART`:{let n=t.state.items.map(t=>{let n=e.items.find(e=>e.id===t.id);return n?{...t,quantity:n.quantity}:t}),r=[...t.state.attributes];for(let t of e.attributes){let e=r.findIndex(e=>e.key===t.key);e>=0?r[e]=t:r.push(t)}return{items:n,attributes:r}}case`SET_ATTRIBUTE`:return e.attributes.some(e=>e.key===t.key)?{...e,attributes:e.attributes.map(e=>e.key===t.key?{key:e.key,value:t.value}:e)}:{...e,attributes:[...e.attributes,{key:t.key,value:t.value}]};case`REMOVE_ATTRIBUTE`:return{...e,attributes:e.attributes.filter(e=>e.key!==t.key)};case`MERGE_ATTRIBUTES`:{let n=[...e.attributes];for(let e of t.attributes){let t=n.findIndex(t=>t.key===e.key);t>=0?n[t]=e:n.push(e)}return{...e,attributes:n}}case`CLEAR_ATTRIBUTES`:return{...e,attributes:[]};default:return e}},l=({children:e,initialState:t,allAvailablePricePoints:n})=>{let[r,l]=(0,i.useReducer)(c,t??o),u=(0,i.useRef)(!1);return(0,i.useEffect)(()=>{!t||u.current||(u.current=!0,l({type:`MERGE_CART`,state:t}))},[t]),(0,i.useEffect)(()=>{n!==void 0&&l({type:`PRUNE_CART`,allAvailablePricePoints:n})},[n]),(0,a.jsx)(s.Provider,{value:{state:r,dispatch:l,getAttribute:e=>r.attributes.find(t=>t.key===e)?.value,getAllAttributes:()=>r.attributes,setAttribute:(e,t)=>l({type:`SET_ATTRIBUTE`,key:e,value:t}),removeAttribute:e=>l({type:`REMOVE_ATTRIBUTE`,key:e}),mergeAttributes:e=>l({type:`MERGE_ATTRIBUTES`,attributes:e})},children:e})},u=()=>{let e=(0,i.useContext)(s);if(!e)throw Error(`useEcomCart must be used within a EcomCartProvider`);return e};function d(e){return typeof e==`string`&&e.startsWith(`gid://shopify/ProductVariant/`)?e:`gid://shopify/ProductVariant/${e}`}function f(e){return e.items.map(e=>({merchandiseId:d(e.id),quantity:e.quantity}))}function p(e){return e?e.cartVersion===`v2`?(e.cartV2?.checkoutFormConfig.contents?.length??0)>0:!!e.contents?.find(e=>e.content?.find(e=>e.blockType===`checkoutForm`)):!1}function m(e,t){let n=0,r=0,i=0;return e.items.forEach(e=>{let a=t.find(t=>d(t.shopifyVariantId)===e.id);a&&(n+=e.quantity,r+=a.price*e.quantity,i+=a.numberOfTickets*e.quantity)}),{totalQuantity:n,totalPrice:r,totalTickets:i}}var h=(0,i.createContext)(null),g=e=>`ip_${e}`;function _(e){let t={};for(let n of e)t[n]=sessionStorage.getItem(g(n));return t}function v(e,t){let n=new URLSearchParams(e),r={},i=!1;for(let e of t){let t=n.get(e);t!==null&&(sessionStorage.setItem(g(e),t),r[e]=t,i=!0)}return i?r:null}function y({children:e,params:t=[]}){let r=n(),[a,o]=(0,i.useState)(()=>{if(typeof window>`u`)return{};let e=v(window.location.search,t)??{};return{..._(t),...e}});return(0,i.useEffect)(()=>{if(typeof window>`u`)return;let e=v(r.search,t);e&&o(t=>({...t,...e}))},[r.search,t]),(0,i.createElement)(h.Provider,{value:{getParam:e=>a[e]??null}},e)}function b(){let e=(0,i.useContext)(h),t=n();return e?e.getParam:e=>new URLSearchParams(t.search).get(e)}var x=(0,i.createContext)(null),S=(0,i.createContext)(null);function C({children:e}){let[t,n]=(0,i.useState)({}),r=(0,i.useRef)(t);r.current=t;let o=(0,i.useMemo)(()=>({setTrackedElements:n,trackedElementsRef:r}),[n]);return(0,a.jsx)(S.Provider,{value:o,children:(0,a.jsx)(x.Provider,{value:t,children:(0,a.jsx)(w,{children:e})})})}function w({children:e}){let t=(0,i.use)(x),n=(0,i.use)(S);if(t===null||!n)throw Error(`StyleHeightTrackerObserver must be used within a StyleHeightTrackerProvider`);let{setTrackedElements:r,trackedElementsRef:a}=n,o=(0,i.useRef)(new WeakMap),s=(0,i.useRef)(0),c=(0,i.useMemo)(()=>{let e=o.current;return Object.entries(t).map(([t,n])=>`${t}:${n.map(t=>{let n=e.get(t.ref);return n===void 0&&e.set(t.ref,n=++s.current),n}).join(`,`)}`).join(`|`)},[t]),l=(0,i.useRef)(new Map);return(0,i.useEffect)(()=>{let e=l.current;e.clear();for(let[t,n]of Object.entries(a.current))n.forEach((n,r)=>{n.ref.current&&e.set(n.ref.current,{key:t,idx:r})})},[c,a]),(0,i.useEffect)(()=>{let e=new ResizeObserver(e=>{r(t=>{let n=null;for(let r of e){let e=l.current.get(r.target);if(!e)continue;let{key:i,idx:a}=e,o=t[i]?.[a];if(!o)continue;let s=r.borderBoxSize?.[0]?.blockSize??r.target.getBoundingClientRect().height;if(s!==o.height){n||={...t};let e=[...n[i]];e[a]={...o,height:s},n[i]=e}}return n??t})});return Object.values(a.current).forEach(t=>{t.forEach(t=>{t.ref.current&&e.observe(t.ref.current)})}),()=>{e.disconnect()}},[c,r,a]),e}function T(){let e=(0,i.use)(S);if(!e)throw Error(`useStyleHeightRegistration must be used within a StyleHeightTrackerProvider`);let{setTrackedElements:t,trackedElementsRef:n}=e,r=(0,i.useCallback)((e,n,r)=>{t(t=>{let i=t[e]??[],a=i.findIndex(e=>e.ref===n);if(a!==-1){if(i[a].position===r)return t;let o=[...i];return o[a]={...o[a],ref:n,position:r},{...t,[e]:o}}return{...t,[e]:[...i,{ref:n,height:0,position:r}]}})},[t]),a=(0,i.useCallback)((e,n)=>{t(t=>{let r=t[e]??[],i=r.filter(e=>e.ref!==n);if(i.length===r.length)return console.warn(`[useStyleHeightTracker] Element with id ${e} is not registered.`),t;if(i.length===0){let n={...t};return delete n[e],n}return{...t,[e]:i}})},[t]),o=(0,i.useCallback)((e,t)=>{let r=document.querySelector(e);
1if(!r)return;let i=0,a=n.current;for(let e in a){let t=a[e];for(let e=0;e<t.length;e++)t[e].position===`top`&&(i+=t[e].height)}window.scrollTo({top:r.getBoundingClientRect().top+window.scrollY-i-(t??16),behavior:`smooth`})},[n]);return(0,i.useMemo)(()=>({registerElement:r,unregisterElement:a,scrollToElement:o}),[r,a,o])}function E(){let e=(0,i.use)(x);if(e===null)throw Error(`useStyleHeightTracker must be used within a StyleHeightTrackerProvider`);let t=T(),n=(0,i.useCallback)(t=>{let n=0;for(let r of t){let t=e[r.categoryId];if(t)for(let e of t)e.position===r.position&&(n+=e.height)}return n},[e]);return(0,i.useMemo)(()=>({getTotalHeight:n,...t}),[n,t])}export{b as a,m as c,u as d,y as i,d as l,T as n,l as o,E as r,p as s,C as t,f as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.