@seatlayer/core 0.57.0 → 0.58.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/{chunk-AQKYUJBX.js → chunk-4BVXDBFE.js} +1 -1
- package/dist/{chunk-6VTTBC5F.js → chunk-66HGMU7D.js} +1 -1
- package/dist/chunk-GHJUDU3U.js +1 -0
- package/dist/{chunk-55NOSZK5.js → chunk-IRFG5DVH.js} +1 -1
- package/dist/{chunk-PXWKSYCK.js → chunk-N4CBOQFB.js} +1 -1
- package/dist/{chunk-7PT7OQUO.js → chunk-PMU3VPNK.js} +1 -1
- package/dist/core/chart-ops/index.js +1 -1
- package/dist/core/inventory/index.cjs +1 -1
- package/dist/core/inventory/index.js +1 -1
- package/dist/core/layout/index.cjs +1 -1
- package/dist/core/layout/index.js +1 -1
- package/dist/core/sections/index.cjs +1 -1
- package/dist/core/sections/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/view3d/index.cjs +25 -20
- package/dist/view3d/index.js +18 -13
- package/package.json +1 -1
- package/dist/chunk-VDZ24QVV.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Ea as v,qa as _,za as A}from"./chunk-
|
|
1
|
+
import{Ea as v,qa as _,za as A}from"./chunk-GHJUDU3U.js";function x(t){let n=Number(t.slice(t.lastIndexOf(":")+1));return Number.isFinite(n)?n:-1}function H(t,n,i){let e=new Map;for(let o of t){if(o.kind==="booth")continue;let a=e.get(o.rowId);a?a.push(o):e.set(o.rowId,[o])}let c=o=>i.has(o.id)||n(o.id)!=="free",l=[];for(let o of e.values())if(!(o.length<3)){o.sort((a,p)=>x(a.id)-x(p.id));for(let a=1;a<o.length-1;a++){let p=o[a];if(c(p))continue;let g=o[a-1],d=o[a+1];x(p.id)-x(g.id)!==1||x(d.id)-x(p.id)!==1||!c(g)||!c(d)||!i.has(g.id)&&!i.has(d.id)||l.push(p)}}return l}function C(t,n){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let i=t.id.lastIndexOf(":");if(i<0)return n;let e=Number(t.id.slice(i+1));return Number.isFinite(e)?e:n}function T(t,n){let i=t.x-n.x,e=t.y-n.y;return i*i+e*e}function N(t){let n=0,i=0;for(let e of t)n+=e.x,i+=e.y;return{x:n/t.length,y:i/t.length}}function M(t,n){return t.find(i=>i.focalPoint)?.focalPoint??n}function E(t){return t.commercial?.premium===!0}function q(t,n,i){let e=Math.floor(i.qty);if(!Number.isFinite(e)||e<=0)return{labels:[],reason:"sold_out"};let{categoryKey:c,zoneId:l,focal:o,preferPremium:a}=i,p=new Map,g=[];if(t.forEach((r,b)=>{let m=n.has(r.label)&&(!c||r.categoryKey===c)&&(!l||r.zoneId===l),f=r.logicalRowId??r.rowId,u=p.get(f);u||(u=[],p.set(f,u)),u.push({seat:r,index:C(r,b),elig:m}),m&&g.push(r)}),g.length===0)return{labels:[],reason:"sold_out"};let d=null,s=r=>{if(!d)return!0;if(a&&r.nonPremium!==d.nonPremium)return r.nonPremium<d.nonPremium;if(r.orphan!==d.orphan)return r.orphan<d.orphan;if(r.d2!==d.d2)return r.d2<d.d2;let b=r.rowId.localeCompare(d.rowId);return b!==0?b<0:r.startIndex<d.startIndex};for(let[r,b]of p){let m=[...b].sort((u,k)=>u.index-k.index),f=0;for(;f<m.length;){if(!m[f].elig){f++;continue}let u=f;for(;u<m.length&&m[u].elig&&(u===f||m[u].index===m[u-1].index+1);)u++;let k=u-f;for(let y=0;y+e<=k;y++){let B=y,j=k-(y+e),F=B===1||j===1?1:0,h=m.slice(f+y,f+y+e).map(I=>I.seat),O={labels:h.map(I=>I.label),seats:h,rowId:r,startIndex:m[f+y].index,orphan:F,nonPremium:a?h.reduce((I,L)=>I+(E(L)?0:1),0):0,d2:T(N(h),M(h,o))};s(O)&&(d=O)}f=u}}return d?{labels:d.labels}:g.length<e?{labels:[],reason:"not_enough_together"}:{labels:g.map((r,b)=>({seat:r,i:b,d2:T(r,r.focalPoint??o)})).sort((r,b)=>{if(a){let f=E(r.seat)?0:1,u=E(b.seat)?0:1;if(f!==u)return f-u}if(r.d2!==b.d2)return r.d2-b.d2;let m=(r.seat.logicalRowId??r.seat.rowId).localeCompare(b.seat.logicalRowId??b.seat.rowId);return m!==0?m:C(r.seat,r.i)-C(b.seat,b.i)}).slice(0,e).map(r=>r.seat.label)}}function $(t,n,i,e){let c=Math.floor(e.qty),l=q(t,i,e),a=n.filter(s=>s.bookingMode==="whole"&&s.capacity===c&&i.has(s.label)&&(!e.categoryKey||s.categoryKey===e.categoryKey)&&(!e.zoneId||s.zoneId===e.zoneId)).map(s=>({table:s,d2:T(s.center,s.focalPoint??e.focal)})).sort((s,w)=>s.d2-w.d2||s.table.label.localeCompare(w.table.label))[0];if(!a)return l;if(!l.labels.length)return{labels:[a.table.label]};let p=new Map(t.map(s=>[s.label,s])),g=l.labels.map(s=>p.get(s)).filter(s=>!!s),d=g.length?T(N(g),M(g,e.focal)):Number.POSITIVE_INFINITY;return a.d2<d?{labels:[a.table.label]}:l}function D(t){return{code:"ticket_option_not_applicable",labels:t,message:"That ticket choice is not available for the selected seat."}}function P(t,n){let i=t.applicability;return i?!(i.seatLabels?.length&&!i.seatLabels.includes(n.label)||i.accessibility?.length&&!i.accessibility.some(e=>n.accessibility?.includes(e))):!0}function Q(t,n){return(t.categories.find(i=>i.key===n.categoryKey)?.tiers??[]).filter(i=>P(i,n))}function K(t,n,i){let e=t.categories.find(l=>l.key===n.categoryKey)?.tiers;if(!e?.length)return{kind:"none"};let c=i==null?e.find(l=>P(l,n)):e.find(l=>l.id===i&&P(l,n));return c?{kind:"resolved",tier:c}:{kind:"invalid"}}function z(t,n){return(t.logicalRowId??t.rowId)===(n.logicalRowId??n.rowId)}function R(t){if(Number.isInteger(t.logicalSeatIndex))return t.logicalSeatIndex;let n=t.id.slice(t.id.lastIndexOf(":")+1),i=Number(n);return Number.isInteger(i)?i:void 0}function G(t,n){if(!z(t,n))return!1;let i=R(t),e=R(n);return i!=null&&e!=null&&Math.abs(i-e)===1}function U(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=n.flatMap(o=>{let a=i.get(o.label);return a?[{selection:o,seat:a}]:[]}),c=e.map(({seat:o})=>o).filter(o=>o.accessibility?.includes("wheelchair")),l=[];for(let{selection:o,seat:a}of e){let p=K(t,a,o.tierId),g=p.kind==="resolved"?p.tier:void 0;(a.accessibility?.includes("companion")||g?.restriction==="companion")&&!c.some(s=>s.id!==a.id&&G(a,s))&&l.push(a.label)}return l.length?{code:"companion_pair_required",labels:l,message:"Select the adjacent wheelchair place with each companion ticket."}:null}function X(t,n){if(!n.length)return null;let i=new Map(v(t,{resolveEyeHeights:!1}).map(o=>[o.label,o])),e=new Set(t.categories.filter(o=>o.notForSale).map(o=>o.key)),c=[],l=[];for(let o of n){let a=i.get(o.label);if(!a)continue;if(e.has(a.categoryKey)){c.push(a.label);continue}K(t,a,o.tierId).kind==="invalid"&&l.push(a.label)}return c.length?{code:"not_for_sale",labels:c,message:"These seats are not for sale."}:l.length?D(l):U(t,n)}var S=class extends Error{constructor(i,e){super(e);this.objectId=i;this.name="GroupedTableProjectionError"}};function V(t){let n=t.minOccupancy,i=t.maxOccupancy;if(!Number.isInteger(n)||!Number.isInteger(i)||n<1||i<n||i>t.seatCount)throw new S(t.id,`Table "${t.label}" has invalid variable-occupancy bounds`);return{min:n,max:i}}function te(t,n){if(n!==2)return[];let i=[];for(let e of A(t)){if(e.type!=="table"||!e.bookAsWhole&&!e.variableOccupancy)continue;if(e.bookAsWhole&&e.variableOccupancy)throw new S(e.id,`Table "${e.label}" cannot be whole-table and variable-occupancy inventory`);if(!Number.isInteger(e.seatCount)||e.seatCount<1||!e.label.trim())throw new S(e.id,"Grouped tables require a label and at least one chair");let c=e.variableOccupancy?"variable":"whole",l=c==="variable"?V(e):{min:e.seatCount,max:e.seatCount};i.push({objectId:e.id,label:e.label,...e.displayLabel?{displayLabel:e.displayLabel}:{},...e.displayType?{displayType:e.displayType}:{},categoryKey:e.categoryKey,mode:c,capacity:e.seatCount,minOccupancy:l.min,maxOccupancy:l.max,chairs:_(e)})}return i}export{H as a,q as b,$ as c,D as d,P as e,Q as f,K as g,U as h,X as i,S as j,te as k};
|