PageSourceSearch

https://www.coast2coastcomps.com/_nuxt/Dzf2V6k3.js

js coast2coastcomps.com collected 2026-10-08 00:08:42 UTC 3,318 bytes, 1 lines download raw bytes

1import{h as M,av as a,dg as i}from"./CoDBd4dE.js";import{c as L}from"./CTpO0kt8.js";(function(){try{var s=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};s.SENTRY_RELEASE={id:"d92897b25bafb6bbc33b5580114674006cdc9bf0"};var d=new s.Error().stack;d&&(s._sentryDebugIds=s._sentryDebugIds||{},s._sentryDebugIds[d]="f4d91c45-a74e-46c5-83d3-61a92ea186da",s._sentryDebugIdIdentifier="sentry-dbid-f4d91c45-a74e-46c5-83d3-61a92ea186da")}catch{}})();var f;(function(s){s.FIXED="fixed",s.PERCENT="percent",s.PRICE="price"})(f||(f={}));function j(s,d){const x=[5,10,20,50],o=a(()=>Number(i(s).price??0)),m=a(()=>Number(i(s)?.salePrice??0)),N=a(()=>m.value>0&&m.value<o.value),I=a(()=>N.value?m.value:o.value),w=a(()=>i(s)?.activeSale??null),y=a(()=>i(s)?.multibuyDiscounts??[]);function g(e,t){const n=L(t,0,100);return Math.max(0,Math.floor((e*(100-n)+50)/100))}function S(e,t,n){return n?Math.floor(t):Math.max(0,e-Math.floor(t))}function b(e,t){if(!t)return e;const n=Math.max(0,Number(t.discountValue??0)),c=String(t.discountType??"").toLowerCase();if(c===M.PERCENT)return g(e,n);if(c===M.FIXED){const r=Number(t.exactTickets??0)>0;return S(e,n,r)}return e}function h(e,t){const n=w.value;if(!n||n.stackableWithBundle===!1)return e;const c=String(n.type??"").toLowerCase(),r=Number(n.value??0);switch(c){case f.PERCENT:return g(e,r);case f.FIXED:return Math.max(0,e-r*t);case f.PRICE:return Math.max(0,r*t);default:return e}}function k(e){const t=y.value.filter(c=>{const r=Number(c.exactTickets??0)||0,u=Number(c.minTickets??0)||0,l=c.maxTickets==null?1/0:Number(c.maxTickets);return r>0?e===r:u>0&&e>=u&&e<=l});if(!t.length)return null;const n=e*o.value;return t.map(c=>({d:c,tot:h(b(n,c),e)})).sort((c,r)=>c.tot-r.tot)[0].d}function p(e){if(e<0)return console.warn("[useMultibuyDiscounts] Invalid quantity:",e),0;const t=k(e);if(!t)return e*I.value;const n=e*o.value,c=b(n,t),r=h(c,e),u=e*I.value;return Math.min(u,r)}function E(e){return p(e)/Math.max(1,e)}const v=a(()=>y.value.map(e=>{const t=Number(e.exactTickets??0)||0,n=Number(e.minTickets??0)||0,c=e.maxTickets==null?1/0:Number(e.maxTickets),r=t===0&&n>0,u=t>0?t:n>0?n:0;if(u<=0)return null;const l=t>0?`${t}`:c===1/0?`${n}+`:`${n}–${c}`,C=p(u),O=E(u),D=e.freeTickets||[],F=D.reduce(($,B)=>$+(Number(B.quantity)||0),0);return{id:e.id,qty:u,label:l,unit:O,total:C,raw:e,isRange:r,min:n,max:c,exact:t,freeTicketsTotal:F,freeTickets:D}}).filter(Boolean).sort((e,t)=>e.exact&&!t.exact?-1:!e.exact&&t.exact?1:e.qty-t.qty)),T=a(()=>Number(i(s)?.maxTicketsPerUser??i(s)?.max_ticket_per_user??0)),R=a(()=>{const e=T.value,t=Number(i(s)?.ticketStep??1);let n=x.map(c=>c*t);return e?n.filter(c=>c<=e):n}),P=a(()=>{const e=T.value;return e?v.value.filter(t=>Number(t.qty)<=e):v.value});function _(e){const t=P.value;if(!t.length)return-1;const n=t.findIndex(r=>Number(r.exact||0)>0&&e===Number(r.exact));return n>=0?n:t.findIndex(r=>{if(!r.isRange)return!1;const u=Number(r.min||0),l=Number(r.max==null?1/0:r.max);return e>=u&&e<=l})}return{unitPrice:o,unitSalePrice:m,hasValidSale:N,multibuyOptions:v,filteredMultibuyOptions:P,filteredQuickOptions:R,maxPerUser:T,quickSelectOptions:x,calculateDiscountedPrice:p,calculatePricePerEntry:E,findBestDiscount:k,applyDiscount:b,findSelectedOptionIndex:_}}export{j 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.